読者です 読者をやめる 読者になる 読者になる

素敵なおひげですね

PowerShellを中心に気分で書いているブログです。

(個人用メモ)Nagiosクライアント(NCPA)のインストール手順

前の記事ではサーバー側のインストール手順をメモしたので今回はクライアント側の手順を記録しておきます。

NCPA(Nagios Cross Platform Agent)

NCPA(Nagios Cross Platform Agent)はその名前の通り、クロスプラットフォームNagiosクライアントです。

対象プラットフォームはWindowsLinuxMac(OS X)、ライセンスはNagios Software Licenseで、無償での利用が可能の様です。(英語が読み切れない...) あとソースは公開されていない様です。 NagiosEnterprises/ncpa · GitHubで公開されていました。


Nagiosのクライアントといえば、NRPEをはじめとして色々なソフトウェアがありますが、クロスプラットフォーム(特にWindows対応)である点と、比較的新しく現在も開発が続いている(様に見える)点から今回はNCPAを選んでみました。

私がNagiosで監視しようとしている対象がWindowsCentOS*1なので、この2つのプラットフォームでのインストール手順について触れていきます。

より詳細な情報についてはInstallation — NCPA 1.1 documentationを参照してください。

NCPAのインストール(Windows)

WindowsにNCPAをインストールするにはココからインストーラーをダウンロードして実行します。

Windows 2012 Server R2で実行した際のスクリーンショットを以下に貼っていきます。

  • 最初に使用許諾に同意する必要があります。

f:id:stknohg:20140206042003p:plain

  • 続けて、アクティブ/パッシブモードの設定を行います。
    最低限使用するにはToken(NCPAのapiにアクセスする際に使用するパスワード的なモノ)だけ設定すれば良いです。
    パッシブモードの設定は必要に応じて行って下さい。

f:id:stknohg:20140206042431p:plain

  • インストール先を決めて、Installボタンを押すとインストールが開始されます。

f:id:stknohg:20140206042429p:plain

  • インストールが終わると以下の様な画面になります。

f:id:stknohg:20140206042426p:plain

インストール後は、"NCPA Listener"、"NCPA Passive"の2つのサービスが自動起動する様になります。 それぞれアクティブモード、パッシブモード用のサービスとなります。

また、NCPAとの通信にはTCP 5693ポートを使用するのでWindows Firewallの設定を変更し、5693ポートを開ける必要があります。

# Powershell でWindows Firewallの設定を変更
# Windows Server 2012 R2で実施
New-NetFirewallRule -DisplayName “NCPA Active” -Direction Inbound -Protocol TCP -LocalPort 5693 -Action Allow

NCPAのインストール(CentOS)

CentOSの場合はrpmファイルからインストールします。

# CentOS 6.x の場合
rpm -ivh http://assets.nagios.com/downloads/ncpa/ncpa-head.el6.x86_64.rpm

/usr/local/ncpa/にパッケージがインストールされ、ncpa_listener、ncpa_passiveの2つのプロセスががランレベル2-5で動く様になります。 続けて、/usr/local/ncpa/etc/ncpa.cfgにあるトークンを編集し、5693ポートを開ければ最低限の設定は完了となります。

ただ、現在のバージョン(1.1)ではバグなのか仕様なのかわかりませんが、プラグイン用のディレクトリが作成されておらずNCPAのapiを呼び出した際に実行時エラーとなってしまうのでpluginsディレクトリを作成しておく必要があります。

# 設定変更(最低限)
vi /usr/local/ncpa/etc/ncpa.cfg
# ➡ [api]セクションの community_string = [独自の値] に編集
#  デフォルト値は mytoken
# その他の設定は必要に応じて実施

# serviceの再起動
service ncpa_listener restart
service ncpa_passive restart

# Configure IPTables
vi /etc/sysconfig/iptables
# → 5693ポートを開ける

# apiを呼び出した際に実行時エラーが発生するのでpluginディレクトリを追加 (バグ?)
mkdir -p /usr/local/ncpa/plugins

動作確認

NCPAの動作確認をするには、httpsで5693番ポートにアクセスします。

  • アクセスすると認証画面になるのでインストール時に設定したTokenを入力するとログインすることが出来ます。

f:id:stknohg:20140206051425p:plain

  • ログインするとインストールしたマシンのステータスを確認する事が出来ます。

f:id:stknohg:20140206051426p:plain

  • 他にもサーバーの使用状況をリアルタイムで確認できるDashboardや設定の確認(β機能っぽい)、apiの動作確認を行うことができます。

f:id:stknohg:20140206051427p:plain

f:id:stknohg:20140206051428p:plain

f:id:stknohg:20140206051429p:plain

サーバー側の設定変更

NCPAをアクティブモードで使用する場合、サーバー側に追加のコマンドcheck_ncpa.pyをインストールする必要があります。 NCPAのapiはすべてjsonで結果が返されるため単純なapi呼び出しではnagiosは認識できません。

このコマンドでjsonNagios apiの形式に変換しています。

check_ncpa.pyの詳細についてはActive Checks — NCPA 1.1 documentationあたりを参考にしてください。

# この作業はサーバー側で実施します。
cd /usr/local/nagios/libexec/
wget http://assets.nagios.com/downloads/ncpa/check_ncpa.py
chmod 755 check_ncpa.py

*1:気が向いたらMacも試すかも...