イントロダクション
Nagiosはプラグインが通常の状態データを返す他にオプションでパフォーマンスデータを返す事ができるようにデザインされています。同様に、そのパフォーマンスデータを外部のアプリケーションで処理できるようにもなっています。異なるタイプのパフォーマンスデータの説明と、そのデータの処理のやり方についての情報を以下に記述します・・・
パフォーマンスデータのタイプ
Nagiosから得られるパフォーマンスデータには2つの基本的なカテゴリがあります:
チェックパフォーマンスデータはホストやサービスチェックの実際の実行と関係のある内部データです。これはサービスチェック遅延(例:サービスチェックが予定された時間と比べてどれだけ"遅れて"実行されたか)とホスト、サービスチェックの実行時間がどれぐらいであったかと言うことが含まれています。このタイプのパフォーマンスデータは実行される全チェックで有効です。 $EXECUTIONTIME$ マクロにてホスト、サービスチェックの実行時間を取得でき、$LATENCY$ マクロにてサービスチェック実行がどれぐらい"遅延"しているか取得できます。(host checks have zero latency, as they are executed on an as-needed basis, rather than at regularly scheduled intervals)
プラグインパフォーマンスデータ はホスト、サービスチェックで使用する特定のプラグインの外部データです。プラグイン特有のデータにはパケットロスのパーセンテージ、ディスク空き容量、CPU負荷、現在のログインユーザ数などの情報が含まれています。 - 基本的にはプラグインが実行されたときの任意のメトリックタイプです。プラグイン特有のパフォーマンスデータはオプションで、プラグインによっては対応していないものもあるでしょう。この文書を書いている段階では、パフォーマンスデータを返すプラグインはありませんが、近いうちに対応するでしょう。プラグイン特有のパフォーマンスデータは(もし対応していれば) $PERFDATA$ マクロで取得できます。
プラグインのためのパフォーマンスデータサポート
通常はプラグインは計測データのタイプの状態を示した1行のテキストを返します。たとえばcheck_pingプラグインはおそらく次の行を返すでしょう:
With this type of output, the entire line of text is available in the $OUTPUT$ macro. この出力のタイプは、 $OUTPUT$ マクロで利用可能です。
Nagiosにプラグイン特有のパフォーマンスデータを渡す為にはプラグイン使用を拡張します。もしプラグインがNagiosにパフォーマンスデータを返したければ、通常のテキストの返り文字列の後ろにパイプ文字(|)を加え、1つ以上のパフォーマンスデータメトリクス文字列を付け加えます。例としてcheck_pingプラグインを見てみると、パケットロスのパーセンテージとround tripタイムパフォーマンスデータメトリクスを返しています。サンプル出力は以下です:
Nagiosはこのフォーマットのプラグイン出力を2つのパートに分割します:一つやパイプ文字より前の部分で"通常の"プラグイン出力に、もう一つはパイプ文字列より後ろの部分でこれを、プラグイン特有のパフォーマンスデータと見なします。"通常の"プラグイン出力は $OUTPUT$ マクロに蓄えられ、一方のオプションのパフォーマンスデータは $PERFDATA$ マクロに蓄えられます。上の例では、 $OUTPUT$ マクロには "PING ok - Packet loss = 0%, RTA = 0.80 msが入ります(引用記号は除きます)。
パフォーマンスデータ処理を有効にする
If you want to process the performance data that is available from Nagios and the plugins, you'll need to do three things. Nagiosとプラグインからのパフォーマンスデータを有効にしたいのであれば、3つの作業を行う必要があります。
初めに、メインコンフィグファイルのprocess_performance_dataを有効にする。
次に、Nagiosを適切なパフォーマンスデータ処理のタイプを有効にしてコンパイルする。現在は以下の2つのタイプがあります:
最後に、パフォーマンスデータ取得を開始するために設定ファイルにディレクティブやコマンド定義を追加します。加える必要がある正確な項目はNagiosをコンパイルしたどんなタイプのパフォーマンスデータ処理方式に依存します。どんなことをするかについては前述した方式の必要なリンクをたどってください。
後処理オプションPost-Processing Options
Nagiosから取得したパフォーマンスデータを後処理したいと思うはずです。そうでなければなぜパフォーマンスデータを取得するように設定したのでしょう?
Nagiosからでたパフォーマンスデータを処理するのは完全にあなたの責任です。パフォーマンスデータを単純にテキストファイルに書き込んでいるなら、cronジョブでエントリを処理してつぶして rrdtoolを使ってみたり、ダンプしてDBに入れて見たり、グラフを書いてみたり等々…。