外部コマンドの実行設定


1.外部コマンドとは
 「Nagios以外のアプリケーションやCGI等から、Nagiosに対して様々な命令を与え実行 させる
仕組みのようである。
具体的にNagiosにさせることができることは、
  ・ Nagiosを終了させたり、再起動させたりする。
  ・ スタンバイ・モードに変えたり、アクティブ・モードに変えたりする。
  ・ あるサービスのチェックをできなくしたり、再度チェックできるようにする。
  ・ あるホストの全てのサービスのチェックをできなくしたり、再度チェックできるようにする。
  ・ ホストやサービスに関するメールでの通知をできなくしたり、できるようにする。
  ・ ホストやサービスに関するコメントを書き込む。
などがある。

そして、Nagiosはこれらの命令が与えられたかどうかを次のタイミングでチェックします。
  ・ 定期的なチェック = Main Configuration File(/usr/local/netsaint/etc/nagios.cfg)の
                「command_check_interval」でチェックする間隔を定義します。
  ・ イベントハンドラーが実行された場合。

2.外部コマンドの実行設定
  • check_external_commands オプションで外部コマンドチェックを有効にする
  • command_check_interval オプションでコマンドチェックの頻度を設定する
  • command_file オプションでコマンドファイルの場所を指定する。外部コマンドファイルをそれ専用のディレクトリに置くのが最も良い( 例えば/usr/local/nagios/var/rw).
  • 外部コマンドファイルを含むディレクトリの権限を適切に設定する。

初めにウェブサーバがどのユーザで稼働しているか調べてください。多くのシステムではnobodyです。ただし、これは 稼働している OS/ディストリビューションに依存しています。 同様に、Nagiosもどのユーザーで稼働しているか知っている必要があります。- これはメインコンフィグファイルのnagios_userで 設定しています。

次に、ウェブサーバを稼働させているユーザとNagiosを稼働させているユーザが含まれるグループを作成します。このグループを'nagiocmd' グループと称しましょう(望むなら名前は変更できます)。RedHat Linuxなら、以下のコマンドで新しいグループを作成できます(他のシステムならおそらく違うやり方でしょう):

/usr/sbin/groupadd nagiocmd

次に、ウェブサーバユーザ(nobodyもしくはapacheとか)とNagiosユーザ(nagios) を新しく作成したグループに追加します。

/usr/sbin/usermod -G nagiocmd nagios
/usr/sbin/usermod -G nagiocmd nobody(Turbolinux)   apache(RedHat7.3)

ディレクトリを作成する

次に、コマンドファイルを置くディレクトリを作成します。 デフォルトでは、/usr/local/nagios/var/rwで すが、command_fileで 異なるディレクトリの指定は可能です。

mkdir /usr/local/nagios/var/rw

ディレクトリのパーミッションの設定

Next, change the ownership of the directory that will be used to hold the command file... 次に、コマンドファイルを置くディレクトリのオーナーを変更します・・・

chown nagios.nagiocmd /usr/local/nagios/var/rw

Nagiosユーザにはこのディレクトリに全権限を与えます・・・

chmod u+rwx /usr/local/nagios/var/rw

作成したグループにはこのディレクトリに全権限を与えます・・・

chmod g+rwx /usr/local/nagios/var/rw

このディレクトリに作成されるファイルにはディレクトリのグループ権限が継承されるようにするため、以下にグループのスティッキービッ トを立ててく ださい・・・

chmod g+s /usr/local/nagios/var/rw

パーミッションの検証

'ls -al /usr/local/nagios/var'を実行して、rw/サブディレクトリのパーミッションを 確認してください。 それは以下のような感じになるはずです:

drwxrws---   2 nagios nagiocmd     1024 Aug 11 16:30 rw

登録コマンド、これに関しては、上記の登録だけで使える。/usr/local/nagios/var/rw/nagios.cmd は自動生成される。

コマンド ID コマンド引数 コマンド説明
ADD_HOST_COMMENT <host_name>;<persistent>;<author>;<comment> 特定のホストのコメントを扱うのに用いられます。一般的 に、author 引数はコメントを入力した人の名前を含みます。実際のコメントはセミコロンを含んではいけません。永続フラグによってコメントが再起動後も残るかどうか決 定されます。(1の場合、プログラム再起動後もコメントを残します。0の場合、再起動時にコメントは削除されます)
ADD_SVC_COMMENT <host_name>;<service_description>;<persistent>;
<author>;<comment>
このコマンドは特定のホストのコメントを扱うのに用いられ ます。ホスト 名とサービスの説明の両方が必要なことに注意してください。一般的に、author 引数はコメントを入力した人の名前を含みます。実際のコメントはセミコロンを含んではいけません。永続フラグによってコメントが再起動後も残るかどうか決 定されます。(1の場合、プログラム再起動後もコメントを残します。0の場合、再起動時にコメントは削除されます)
DEL_HOST_COMMENT <comment_id> このコマンドはcomment_idで指定 されたホスト のコメントを削除するのに用いられます。
DEL_ALL_HOST_COMMENTS <host_name> このコマンドは特定のホストに関係する全てのコメントを削 除するのに用 いられます。
DEL_SVC_COMMENT <comment_id> このコマンドはcomment_idで指定 されたサービ スのコメントを削除するのに用いられます。
DEL_ALL_SVC_COMMENTS <host_name>;<service_description> このコマンドは特定のサービスに関係する全てのコメントを 削除するのに 用いられます。ホスト名とサービスの説明の両方が必要なことに注意してください。
DELAY_HOST_NOTIFICATION <host_name>;<next_notification_time> このコマンドは、next_notification_time引 数で指定された時間まで、次のこのホストの通知を遅らせます。次の通知の前にホストの状態変化が送信されるよう準備されている場合には、効果がありませ ん。
DELAY_SVC_NOTIFICATION <host_name>;<service_description>
;<next_notification_time>
このコマンドは、next_notification_time 引数で指定された時間まで、次回のこのサービスの通知を遅らせます。ホスト名とサービスの説明の両方が必要なことに注意してください。次の通知の前にサー ビスの状態変化が送信されるよう準備されている場合には、効果がありません。このコマンドはホストの通知を遅らせません。
SCHEDULE_SVC_CHECK <host_name>;<service_description>;
<next_check_time>
このコマンドは、特定のサービスの次回のチェックをnext_check_time 引数で指定された時間に再準備させます。ホスト名とサービスの説明の両方が必要なことに注意してください。
SCHEDULE_HOST_SVC_CHECKS <host_name><next_check_time> このコマンドは、特定のホストの全てのサービスの次回の チェックをnext_check_time 引数で指定された時間に再準備させます。
ENABLE_SVC_CHECK <host_name>;<service_description> このコマンドは、特定のサービスのチェックを再び有効にし ます。 ホスト名とサービスの説明の両方が必要なことに注意してください。
DISABLE_SVC_CHECK <host_name>;<service_description> このコマンドは、特定のサービスチェックを一時的に停止さ せます。 Nagiosが再 起動すると、自動的にサービスチェックは有効になります。このコマンドを使用することで、一時的にサービス通知が送信されないように出来るという効果もあ ります。 このコマンドによってホスト通知の送信が停止することはありません。
ENABLE_SVC_NOTIFICATIONS <host_name>;<service_description> このコマンドは特定のサービスの通知を再び有効にするのに 用いられま す。ホスト名とサービスの説明の両方が必要なことに注意してください。
DISABLE_SVC_NOTIFICATIONS <host_name>;<service_description> このコマンドは、一時的に特定のサービス通知が送信されな いようにしま す。Nagiosが再起動すると、サービス通知は自動的に有効になります。ホスト名とサービスの説明の両方が必要なことに注意してください。このコマンド によってホスト通知が停止することはありません。
ENABLE_HOST_SVC_NOTIFICATIONS <host_name> このコマンドは、特定のホストの全てのサービス通知を再び 有効にしま す。このコマンドによってホスト通知は有効になりません。
DISABLE_HOST_SVC_NOTIFICATIONS <host_name> このコマンドは、一時的に特定のホストの全てのサービス通 知を停止させ ます。このコマンドによってホスト通知は停止しません。
ENABLE_HOST_SVC_CHECKS <host_name> このコマンドは、特定のホストの全てのサービス通知を再び 有効ににしま す。サービス通知を停止させた時に一つかそれ以上のOKでない状態のサービスがあった場合、チェックが再び有効になった後にサービスが回復したら contactsに通知が送られます。
DISABLE_HOST_SVC_CHECKS <host_name> 特定のホスト上の全てのサービスチェックを一時的に停止さ せます。 Nagiosが再 起動すると、サービスチェックは自動的に再び有効になります。 このコマンドが実行されると、関係のある全てのサービス通知が送信されなくなる効果もあります。このコマンドでホスト通知が停止することはありません。
ENABLE_HOST_NOTIFICATIONS <host_name> このホストの通知を一時的に有効にします。(訳注 原文はdisable. 原文間違えてる?) このコマンドによってこのホストに関係するサービス通知は有効になりません。
DISABLE_HOST_NOTIFICATIONS <host_name> このホストの通知を一時的に停止させます。Nagiosが 再起動する と、通知は自動的に有効になります。このコマンドによってこのホストに関わるサービス通知は停止しないことに注意してください。
ENABLE_ALL_NOTIFICATIONS_BEYOND_HOST <host_name> host_name 引数で指定されたホストの範囲(Nagiosの視点から)を越えて全てのホストとサービスの通知を有効にします。このコマンドは冗長化 監視 をしているホストの連結によく使われます。
DISABLE_ALL_NOTIFICATIONS_BEYOND_HOST <host_name> host_name 引数で指定されたホストの範囲(Nagiosの視点から)を越えて全てのホストとサービスの通知を一時的に停止させます。Nagiosが再起動すると、通 知は自動的に再び有効になります。このコマンドは冗長化 監視 をしているホストの連結によく使われます。
ENABLE_NOTIFICATIONS <execution_time> execution time 引数で指定された時間にプログラム全体の基準でホストとサービスの通知を有効にします。
DISABLE_NOTIFICATIONS <execution_time> execution time 引数で指定された時間にプログラム全体の基準でホストとサービスの通知を停止させます。
SHUTDOWN_PROGRAM <execution_time> execution_time 引数で指定された時間にNagiosをシャットダウンさせます。注: Nagiosは一旦シャットダウンさせると、ウェブインターフェイスからリスタート出来ません。
RESTART_PROGRAM <execution_time> execution_time 引数で指定された時間に、Nagiosは設定状態を書き出し、再び設定ファイルを読み込み、監視を再開します。
PROCESS_SERVICE_CHECK_RESULT <host_name>;<service_description>;<return_code>
;<plugin_output>
このコマンドは特定のサービスをチェックした結果を Nagiosに伝え るのに使用されます。これら”受動”チェックは通常の”能動”チェックと同様に実行されます。受動的サービスチェックの詳しい説明はこ こにあります。
SAVE_STATE_INFORMATION <execution_time> state_retention_file 変数で指定されたファイルに全てのサービスとホストの現在の状態をダンプさせます。このコマンドを使うにはretain_state_information オプションを有効にしておかなければなりません。.
READ_STATE_INFORMATION <execution_time> このコマンドによって、Nagiosはstate_retention_file 変数で指定されたファイルから以前に保存された全てのサービスとホストの状態を読み出します。このコマンドを使うにはretain_state_information オプションを有効にしておかなければなりません。.
START_EXECUTING_SVC_CHECKS
サービスチェックの実行を再開させます。サービスチェック の実行はSTOP_EXECUTING_SVC_CHECKS コマンドを受け取ったり、メイン設定ファイルでexecute_service_checks オプションを0に設定することにより、すでに停止した状態かもしれません。冗長化 監視の実装の際によく使用されます。
STOP_EXECUTING_SVC_CHECKS
サービスチェックを停止させます。サービスチェックが実行 されないと Nagiosは実際にチェックをせずに後のためにキューに溜めます。監視に関する限り、このコマンドによってNagiosは”休眠”状態になると言えま す。ホ ストの冗長化監視の実装の際によく使用されます。
START_ACCEPTING_PASSIVE_SVC_CHECKS
全てのサービスの受 動サービスチェック の受け入れを再開するのに使用されます。受動サービスチェックの受け入れはSTOP_ACCEPTING_PASSIVE_SVC_CHECKS コマンドを受け取るか、 メイン設定ファイルでaccept_passive_service_checks オプションを0に設定することにより、すでに停止しているかもしれません。DISABLE_PASSIVE_SVC_CHECKS コマンドで受動サービスチェックを停止させると、受動チェックは受け入れられなくなりますが、その他は受け入れられます。
STOP_ACCEPTING_PASSIVE_SVC_CHECKS
全サービスの受 動サービスチェックを停止させます。
ENABLE_PASSIVE_SVC_CHECKS <host_name>;<service_description> 特定のサービスの受 動サービスチェックの受け入れを再開させます。DISABLE_PASSIVE_SVC_CHECKS コマンドを受け取ることで、受動サービスチェックはすでに停止しているかもしれません。 STOP_ACCEPTING_PASSIVE_SVC_CHECKS コマンドを受け取ったり、メイン設定ファイルでaccept_passive_service_checks オプションを0に設定することで全サービスの受動チェックが停止していると、 このコマンドは使えません。
DISABLE_PASSIVE_SVC_CHECKS <host_name>;<service_description> 特定のサービスの受 動サービスチェックの受け入れを停止します。


実行例(サーバーにコメントを入れたところ。このコメントは削除するまで残る。)

外部コマンド

前ページ