Nagios

序論


Nagiosは、プラグインが、正常な状態データに加えて任意の性能データを返すのを許可すると同時に、その性能データを処理の外部のアプリケーションに渡すのを許可するように設計されています。 異なったタイプの性能データ記述と同様、データをどう処理するかの情報は以下に説明されます…

性能データのタイプ


Nagiosから得られる性能データには2つの基本的なカテゴリがあります:

  1. 性能データをチェックします。
  2. プラグイン性能データ

チェック性能データは、ホストかサービス・チェックの実際の実行に関する内部のデータです。 これはサービス・チェック待ち時間(すなわち、予定されている実行時間より"遅れて”サービス・チェックがどうあった)とホストかサービス・チェックが実行するのにかかった秒数を含むかもしれません。 このタイプの性能データは実行されるすべてのチェックで利用可能です。 ホストかサービス・チェックが実行していた秒数を測定するのに$HOSTEXECUTIONTIME$$SERVICEEXECUTIONTIME$iマクロを使用できます、そして、定期的に予定されているホストかサービス・チェックがどの程度「遅かったか」を決定するのに$HOSTLATENCY$$SERVICELATENCY$マクロを使用できます。

プラグイン性能データはホストかサービス・チェックを実行するのに使用されるプラグインに特有の外部のデータです。 プラグイン特有のデータはパーセント・パケット損失、空きディスクスペース、プロセッサ負荷、現在のユーザの数などを含むことができます。 - 基本的に、プラグインのどんなタイプの基準も実行で測定されます。 プラグイン特有の性能データはオプションであり、すべてのプラグインで必ずしもサポートされません。 $HOSTPERFDATA$$SERVICEPERFDATA$マクロを使用することで、プラグイン固有の性能データ(利用可能であるなら)を得ることができます。 プラグインが$HOSTPERFDATA$と$SERVICEPERFDATA$マクロに含んでNagiosに性能データを返すかの詳細情報を続けます。

プラグイン性能データ


最小限、Nagiosプラグインは何らかのタイプの測定できる状態データを人間が読める1行のテキストで返さなければなりません。 例えば、check_ping プラグインは以下のようなテキスト行を返すかもしれません:

PING ok - Packet loss = 0%, RTA = 0.80 ms

この単純なタイプの出力で、全体のテキスト行は$HOSTOUTPUT$か$SERVICEOUTPUT$マクロで利用可能です(このプラグインがホスト・チェックかサービス・チェックで使われるかどうかによります)。

プラグインは通常出す出力にオプションで性能データを返す事ができます。普通は人の読める文字列でそれに続き、パイプ文字(|)の後に1つかそれ以上の性能基準を含む文字が続きます。 check_ping プラグインを例に取り、強化が許可され、性能データ測定基準としてパーセント・パケット損失と平均した応答時間を返すとしましょう。 プラグインからのサンプル出力はこの様です:

PING ok - Packet loss = 0%, RTA = 0.80 ms | percent_packet_loss=0, rta=0.80

Nagiosがこのプラグイン出力形式を見るとき、出力を2つの部分に分けます:

  1. パイプ・キャラクタの前の全てが「正常な」プラグイン出力と考え、$HOSTOUTPUT$か$SERVICEOUTPUT$マクロのどちらかに保存されます。
  2. パイプ・キャラクタの後の全てが、プラグイン特有の性能データであると考えられ、$HOSTPERFDATA$か$SERVICEPERFDATA$マクロに保存されます。

上の例では、$HOSTOUTPUT$か$SERVICEOUTPUT$マクロに "PING ok - Packete loss = 0% RTA =0.80 ms" (引用文のない)を含み、$HOSTPERFDATA$または$SERVICEPERFDATA$マクロには "percent_packet_loss=0, rta=0.80"(引用文のない)を含んでいるでしょう。

複数行に渡る性能データ(通常のテキスト出力と同様)は、プラグイン API ドキュメントで記述されたプラグインで得る事ができます。

注意: Nagiosデーモンが直接プラグイン性能データを処理しないので、性能データがどの様かを本当に気にかけません。 本当に、性能データの書式や内容について少しの関係する制限もありません。 しかしながら、性能データ(すなわち、PerfParse)を処理するのに外部のアドオンを使っているなら、アドオンは、プラグインが特定の形式で性能データを返すと期待するかもしれません。 詳しい情報に付いてaddonのドキュメントをチェックします。

処理能力データ


性能データを処理したいならそれはNagiosとプラグインで可能で、以下をする必要があります:

  1. process_performance_dataオプションを許可
  2. 性能データがファイルに書くか、そして/または、コマンドを実行して処理されるように、Nagiosを設定します。

ファイルに書くか、またはコマンドを実行することによってどう性能データを処理するかの情報を読み続けます。

使用しているコマンドの処理能力データ


性能データを処理する最もフレキシブルな方法はNagiosにコマンド(指定)を実行させ処理するか、後の外部アプリケーション処理にデータを渡すかです。 Nagiosがホストとサービス性能データを処理するために実行するコマンドは、host_prefdata_commandservice_perfdata_command オプションでそれぞれ決まります。

別のアプリケーションで処理するためのテキストファイルにサービス・チェック性能データを渡すコマンド定義例は、以下に示されています:

define command{
    command_name    store-service-perfdata
    command_line    /bin/echo -e "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$
\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$"
 >> /usr/local/nagios/var/service-perfdata.dat
}

チップ チップ: この方法はフレキシブルですが、比較的高いCPUオーバーヘッドを必要とします。 多くのホストとサービスの処理能力データであれば、たぶん代わりにNagiosに性能データをファイルに書いて欲しくなります。 この方法は次のセクションで説明されます。

性能データをファイルに書きます。


Nagiosにhost_perfdata_fileservice_perfdata_fileオプションを使って全てのホストとサービス性能を直接テキストファイルに書かせることができます。 ホストとサービス性能データがそれらのファイルに書かれてる形式はhost_file_templateservice_perfdata_file_templateオプションで決まります。

サービス性能データのファイル形式テンプレートの例はこの様です。:

service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$
\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$i
\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$

デフォルトで、テキストファイルは「追加」モードで開かれます。 モードを"write" か "non-blocking read/write" (パイプに書く時、有用)に変更する時、host_perfdata_file_modeiservice_perfdata_file_mode オプションを使うことができます。

さらに、Nagiosに host_perfdata_file_processing_commandservice_perfdata_file_processing_commandオプションを使用することで定期的に、性能データファイル(すなわ ち、それらをローテート)を処理するコマンドを定期的に実行させることができます。 これらのコマンドが実行される間隔はhost_perfdata_file_processing_intervalservice_perfdata_file_processing_intervalオプションでそれぞれ管理されます。

参照 参照: プラグイン, プラグインAPI

English Deutsch 日本語

目次