PNP4Nagiosとは、Nagiosが出力したパフォーマンスデータをグラフ表示するためのアドオンだ。
今回は、Nagiosのパフォーマンスデータをグラフ表示するためのアドオンであるPNP4Nagiosのインストール方法を紹介する。
NagiosGrapherと同じRRDToolのフロントエンドであり、RRDTool特有のグラフ表示となるが、NagiosGrapherとは異なり、Nagiosのユーザ認証をサポートしていない。
PNP4Nagiosは、NagiosPluginの開発指針で定められている通りにきちんとパフォーマンスデータが出力される監視Pluginであれば、自動的にグラフ表示される。
逆にきちんとパフォーマンスデータとして出力されず、ステータス情報にしか出力されない監視Pluginの場合はグラフ表示されない。
NagiosGrapherであれば、設定ファイルの書き方次第でステータス情報にしか出力されない監視Pluginの場合もグラフ表示が可能だ。
また、PNP4Nagiosは、日本語情報が実に豊富である。
PNP4Nagiosには、PNP4Nagios 0.4.x 系とPNP4Nagios 0.6.x 系があるが、PNP4Nagiosの日本語情報は、PNP4Nagios 0.4.x 系のものがほとんどだ。
ここで同じ内容を紹介しても面白くない。
そこで、ここでは、PNP4Nagios 0.6.x 系のインストールを行う。
このブログを書いている現在時点でのPNP4Nagios 0.6.x 系の最新版は0.6.2 だ。
以前、インストールしたNagios(3.1.0)にインストールを行う。
サーバOSは、CentOS 5.3 である。
ダウンロード
今回必要なものは以下の通りだ。
●PNP4Nagios : pnp4nagios-0.6.2.tar.gz (PNP 0.6.x Downloads)
ダウンロードしたtarballは、/usr/local/src に置くものとする。
インストールマニュアル
PNP4Nagiosのインストールマニュアルは、PNP4Nagiosの本家サイトに詳しく載っている。
また、全ての作業は特に断りがない限りrootアカウントで行うものとする。
システム要求
PNP4Nagiosのインストールマニュアルによれば、以下の通り。
・Perl >= 5.x without additional modules
・RRDtool >= 1.x, better 1.2 but not compulsory
・PHP >= 5.2. for the Webfrontend based on Kohana
・PHP-extension zlib, session and GD.
・Nagios >= 2.x or Icinga
・Kohana needs the module “mod_rewrite” to be enabled.
ここで問題となるのは、PHP >= 5.2 くらいだろう。
Kohanaは、CakePHPやZend_FrameworkのようなPHPフレームワークだ。
日本ではまだ利用者が少ないようだが、興味があったら調べてくれ。
PNP4Nagios 0.6.x 系は、Kohanaを利用しており、そのため、PHP 5.2以降が必要なのだ。
しかし、CentOS標準のレポジトリでは、このブログを書いている現在時点でPHP 5.1.6が最新だ。
そこで、以下のように新たにレポジトリを追加して、yumでPHP 5.2をインストールする。
このブログを書いている現在時点ではPHP 5.2.11である。
また、このリポジトリでインストールしたいのはPHPだけなので、enabled=0 としておいて、yum の実行時に
–enablerepo= を指定して有効化する。
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka |
PNP4Nagiosのインストール
PNP4NagiosがNagiosからグラフデータの元となるパフォーマンスデータを受け取る方法は、以下の3つのモードから選択できる。
3,2,1の順でパフォーマンスが良い。
1.デフォルトモード
パフォーマンスデータを直接process_perfdata.pl(PNP4Nagiosの1部)に渡して処理する方法。
2.Bulkモード
パフォーマンスデータをテンポラリファイル(/usr/local/pnp4nagios/var/service-perfdata)に出力し、
そのファイルをprocess_perfdata.plが読み込んで処理をする方法。
Nagiosは、process_perfdata.plの処理が終わるまで、次のチェックを行わない。
3.Bulkモード with NPCD
パフォーマンスデータをテンポラリファイル(/usr/local/pnp4nagios/var/service-perfdata)に出力するが、
そのファイルは別途NPCD(Nagios Performance C Daemon)が別ファイルにローテートし、ローテート後の
ファイルをprocess_perfdata.plが読み込んで処理をする方法。
この方法は、NagiosGrapherのファイルモードと同等である。
Nagiosは、process_perfdata.plの処理を気にせず、次のチェックを実行する。
今回は3番目のBulkモード with NPCDでインストールを行う。
# cd /usr/local/src |
Nagiosとの連携
次にPNP4NagiosをNagiosと連携させる。
Nagiosの設定ファイルにPNP4Nagiosの実行に必要な設定を追加する。
●nagios.cfgへの設定追加
process_performance_data=1 # # service performance data # service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=15 service_perfdata_file_processing_command=process-service-perfdata-file # # host performance data starting with Nagios 3.0 # host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ host_perfdata_file_mode=a host_perfdata_file_processing_interval=15 host_perfdata_file_processing_command=process-host-perfdata-file |
●commands.cfgへの設定追加
define command{ command_name process-service-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$ } define command{ command_name process-host-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$ } |
これをNagiosQLで設定する場合、以下のようにする。
上記のcommand_nameの設定をNagiosQLの下記の画面のCommand*のところに入力する。
上記のcommand_lineの設定をNagiosQLの下記の画面のCommand line*のところに入力する。
また、NagiosQLの下記の画面のCommand typeのところでmisc commandを選択し、Activeのチェックボックスにチェックをつけ、Saveボタンを押す。
図1:NagiosQL3によるcommands.cfgへの設定追加(1)
図2:NagiosQL3によるcommands.cfgへの設定追加(2)
NPCDの起動
NPCDを起動するとともに、httpdやNagiosの再起動も行う。
# service npcd start |
PNP4Nagiosのインストールの確認
以下のURLにアクセスし、インストール状態を確認する。
http://URL/pnp4nagios/index.php
何も問題がなければ以下のような画面が表示され、一番最後にinstall.phpを削除するかリネームしてくださいというメッセージが表示される。
図3:PNP4Nagios 0.6.2のインストール確認画面
メッセージ通りinstall.phpをリネームする。
# cd /usr/local/pnp4nagios/share |
再度、上記のURLにアクセスし、以下のような画面が表示されればOKだ。
図4:PNP4Ngios 0.6.2のグラフ画面
最後のSWAPのグラフを見ればわかると思うが、WarningやCriticalに設定した値に対応してイエローとレッドのラインが表示されるため、非常に見やすい。
また、PNP4Nagios 0.4.x 系では、イエローなグラフだが、PNP4Nagios 0.6.x 系はブルーなグラフで個人的にはPNP4Nagios 0.6.x 系のほうがいい感じがする。
PNP4Nagiosのインストールの確認でエラーが出たら?
PNP4Nagiosのインストールの確認で以下のようなエラーが出たら、PCREがUnicode対応ではないため、Unicode対応のPCREをインストールする必要がある。
図5:PNP4Nagios 0.6.2のインストール確認画面<PCREエラー>
まず、現状のPCREの確認を行う。
# pcretest -C
|
やはり、『No Unicode properties support』となっている。
しかし、CentOS標準のレポジトリでは、このブログを書いている現在時点で『No Unicode properties support』となっている。
そこで、PHPの時に追加したレポジトリを使用してPCREをインストールする。
このブログを書いている現在時点ではPCRE version 7.8である。
# yum install --enablerepo=utterramblings pcre |
今度は『Unicode properties support』となっている。
再度、PNP4NagiosのURLにアクセスして、PCREのエラーがなくなっていればOKだ。
もし、まだPCREのエラーが出るようなら一度リブートしてみるといい。
|
Categories: Nagios ,PNP4Nagios