NagiosアドオンのPNP4Nagiosインストール

前回インストール「過去記事:NagiosをYUMでインストール」したNagiosが出力するパフォーマンスデータをグラフ表示するアドオンであるPNP4Nagios(0.6.26)をンストールした際の備忘録です。

◆環境

VPS(CentOS7.9)
Nagios Core 4.4.6
Apache 2.4.46
PHP 7.4.23
PNP4Nagios 0.6.26

◆インストールドキュメント

PNP4Nagios公式ドキュメント
参考:CentOSで自宅サーバー構築性能統計グラフ追加(Nagios+PNP4Nagios)

◆ダウンロード

Nagiosは、YUMインストールしたが、PNP4NagiosはYUMでインストールすると古いバージョン(0.6.25)なので、ソースから(0.6.26)をインストールする。
Nagiosのインストールディレクトリは、YUMの場合「/etc」配下となる。

・必要パッケージ

PNP4Nagiosに必要なパッケージのインストール

・PNP4Nagios

1行目:最新バージョンをダウンロード
2行目:ダウンロードファイルの展開
3行目:展開したディレクトリへ移動

◆インストール

1行目:PNP4Nagiosのインストール
2行目:ディレクトリを抜ける
3行目:ダウンロードファイルおよび展開ディレクトリの削除

◆設定

・パスワードディレクトリ

1行目:httpdの「pnp4nagios.conf」設定ファイルの編集
2行目:パスワードファイルのディレクトリ指定を変更

・パフォーマンスデータ処理モード

パフォーマンスデータを処理するモードはいくつかあります。(参照:公式ドキュメント
その中で、「Bulk Mode with NPCD」で設定します。
それぞれの設定要領についても公式ドキュメント「Configuration」にあります。

・PNP4Nagios設定
-日付表示形式設定

1行目:「config_local.php」ファイルの編集
6行目:日付形式を変更

-プラグインの追加

1行目:前回の記事で不具合を修正しているプラグインと同じものなので、修正済みのプラグインをコピーして使用する
2行目: ネットワーク使用状況プラグインは、前回使用した「sh」ファイルではなく、「php」ファイルを使用するので新規にダウンロードする
3行目:ダウンロードした「check_traffic.php」を移動

-ネットワーク使用状況プラグインの編集

1行目:「check_traffic.php」プラグインファイルの編集
4行目:表のタイトル「Traffic Usage」を追加

・Nagios設定
-「nagios.cfg」設定ファイルの編集

1行目:「nagios.cfg」設定ファイルの編集
3行目:パフォーマンスデータ取得を有効化「0」→「1」
5行目:ホストパフォーマンスデータ取得コマンドをコメントアウトを解除して有効化
6行目:サービス パフォーマンスデータ取得コマンドをコメントアウトを解除して有効化
8行目以降:最終行にそれぞれのパフォーマンスデータに関するディレクティブを追加

追加したディレクティブ(hostも同様)
service_perfdata_file:パフォーマンスデータ一時ファイルのパス
service_perfdata_file_template:一時ファイルの形式。定義はNagiosマクロを使用
service_perfdata_file_mode:「a」オプションの指定で、データをファイルに追加する
service_perfdata_file_processing_interval:実行間隔(秒)
service_perfdata_file_processing_command:実行されるコマンド

-「commands.cfg」設定ファイルの編集

1行目:「commands.cfg」設定ファイルの編集
3~15行目:コメントアウトして、無効化
17行目以降:「nagios.cfg」で指定した実行コマンドの定義を追加

-「templates.cfg」設定ファイルの編集

1行目:「templates.cfg」設定ファイルの編集
24行目:Nagiosページのホスト(localhost)からPNPグラフ表示ページへのリンクを追加
62行目:ホストと同様に、サービスごとのリンクを追加

・サービス

各サービスを追加および再起動をします。

1行目:「npcd」(Nagios-Perfdata-C-Daemon)の自動起動設定
2行目:「npcd」サービスの起動
3行目:「httpd」サービスの再起動
4行目:「nagios」サービスの再起動

◆確認

・インストールの確認

「https://SERVER_NAME/pnpnagios/」にアクセスして、「PNP4Nagios Environment Tests」を表示し、すべてのテストが緑(成功)する必要があります。

良ければ、テストページのファイルをリネームまたは削除し、Webインターフェイスページへのアクセスをできるようにします。

リネームする場合

・PNP環境の確認

PNPの環境(構成設定)の確認をするPerlスクリプト「verify_pnp_config」を使用します。

-ダウンロード

verify_pnp_config」スクリプトファイルをダウンロード

-使用方法

公式ドキュメント「verify_pnp_config」でも確認できます。

オプションを指定(下記参照)し、perlで実行します。

オプション
-m | –mode=[ sync | bulk | bulk+npcd | npcdmod ]
-c | –config=[ nagios.cfgのファイルの場所(フルパス)]
-p|–pnpcfg=[ PNP設定ファイルの保存ディレクトリ ]
-o|–object=”[ host ][ ;service ]” (オプション)

出力情報
[INFO]:設定に関する情報
[OK ] :PNPの動作に影響なし
[WARN]:警告:PNPの動作に影響を与える可能性あり
[CRIT] :エラー:問題を解決しないとPNPは動作しない
[HINT] :ヒント:適切なドキュメントを確認する価値あり
[DBG] :デバッグメッセージ:問題の原因が判明する場合あり

◆エラー対処

・「Debug Logfile」の有効化

「process_perfdata.pl」の実行に際して、発生するエラーについては「Debug Logfile」を出力するように設定ファイルを変更して有効化する必要があります。

1行目:「process_perfdata.cfg」設定ファイルの編集
6行目:ログファイルの出力場所の確認
11行目:ログレベルを変更し、出力を有効化「0」→「2」

・PHPエラー

PNPのグラフページを表示しようとした際にエラーページが表示された場合

-マジッククォート関数

1行目:エラー画面の「file [ line ]」で示されたファイルを編集
4行目:57行目のエラーに対し、関数名の前にエラー制御演算子である「@」を挿入し、エラーを非表示にする
7行目:64行目のエラーに対しても同様に対処

-sizeof()関数

sizeof()」関数は、「count()」関数のエイリアスで、指定できない引数とした場合「E_WARNING」が発生します。

1行目: エラー画面の「file [ line ]」で示されたファイルを編集
5行目:979行目のエラーをコメントアウト
6行目:5行目のエラーに対して、「is_array()」関数で変数の配列判定を「sizeof()」関数と「&&」論理積で結んで対処

PHPには、明るくないので対処法として正しいのか判断が付きませんが、エラーは出なくなり正常に動作はしています。

Nagiosに関する設定等についてはこれで落ち着きました。

いいね! & シェア お願いします。

コメントは受け付けていません。