序論
Nagiosは、「正常な」サービスと「不安定な」のサービスを見分ける能力があります。
各サービス定義のis_volatileオプションは、サービスが不安定であるか否か指定できます。します。
すべての監視されたサービスの大部分がほとんどの人々にとっての、安定になります(すなわち、「正常な」)。
しかしながら、適切に使うと、不安定なサービスは非常に役に立つ場合があります…
それらは何の役に立ちますか?
不安定なサービスは監視の役に立ちます…
- 自動的に「OK」にリセットしたものは、その都度、チェックされます。
- 問題があるときはいつも、注意を必要とするセキュリティ警告などのイベント (ちょうど1回目でない)
不安定なサービスは何がそれほど特別ですか?
不安定なサービスが"正常な"サービスと3つの重要な方法で異なっています。 毎回、OKでない安定した状態でチェックされ、OKでないステータスを返すときの(すなわち、状態変更は全く起こっていません)..
- OKでないサービスステータスが登録されます。
- 障害について通知が行われます。(それがするべきことであれば)。 注意: 通知間隔は不安定なサービスのために無視されます。
- サービスのためのイベントハンドラが実行されます。 (1つが定義されたなら)
これらのイベントは通常サービスがOKで無い状態でそれが安定した正にその時だけ起こるイベントです。 言い換えれば、それらはサービスがOKでないステータスに入る1回目にだけ起こります。 今後のサービスのチェックが同じOKでないステータスを返すなら、安定状態の変更は起こりません、そして、何のイベントも起こりません。
チップ: ロギングにだけ関心があるなら、追跡 stalking オプションの使用を代わりに考えてください。
2のパワー
不安定なサービスの特徴に組合わせて、パッシブ・サービス・チェックを使うなら、いくつかの非常に役に立つことができます。 この例は、SNMPトラップ、セキュリティ警告、その他の取扱いを含んでいます。
例はどうです。 あなたのマシンでポートスキャン検知にPortSentryを実行していて、自動的に潜在的な侵入者を防いでいます。 ポート・スキャンに付いてNagiosに知らせたいなら、以下事ができます。…
Nagios設定:
- ポート・スキャンと呼ばれるサービス定義を作成し、PortSentryが走っているホストにそれを関連づけます。
- サービス定義の max_check_attempt 指示を1にを設定します。 これは、OKでないステータスが報告されるとき、即座へのNagiosが安定状態にサービスを力づくでします。
- サービス定義のactive_checks_enable指示を0に設定します。 これは、Nagiosをアクティブ・チェックを禁止します。
- サービス定義のpassive_checks_enabled 指示を1に設定します。 これはサービスのパッシブ・チェックを可能にします。
- サービス定義のis_volatileの指示を1に設定します。
PortSentry設定:
あなたのPortSentry設定ファイル(portsentry.conf)を編集し、KILL_RUN_CMD指示のコマンドを定義します:
KILL_RUN_CMD="/usr/local/Nagios/libexec/eventhandlers/submit_check_result host_name
'Port Scans' 2 'Port scan from host $TARGET$ on port $PORT$. Host has been firewalled.'"
host_nameをサービスが関連しているホストの省略名で変更したかを確かめます。
ポート・スキャン・スクリプト:
/usr/local/nagios/libexec/eventhandlersディレクトにsubmit_check_result の名前のシェルスクリプトを作成します。 シェルスクリプトの内容は、以下のものと似ています。…
#!/bin/sh
# Write a command to the Nagios command file to cause
# it to process a service check result
echocmd="/bin/echo"
CommandFile="/usr/local/nagios/var/rw/nagios.cmd"
# get the current date/time in seconds since UNIX epoch
datetime=`date +%s`
# create the command line to add to the command file
cmdline="[$datetime] PROCESS_SERVICE_CHECK_RESULT;$1;$2;$3;$4"
# append the command to the end of the command file
`$echocmd $cmdline >> $CommandFile`
PortSentryが将来マシン上にポート・スキャンを検出するとき、何が起こりますか?
- PortSentryはホストのファイアウォールとなります。 (これはPortSentryソフトウェアの機能です)
- PortSentryは、submit_check_result シェル・スクリプトを出して、パッシブ・チェック結果をNagiosに送ります。
- Nagiosは、外部のコマンド・ファイルを読んで、パッシブ・サービス・チェックがPortSentryによって出されるのを見ます。
- Nagiosは安定したCRITICAL状態にPort Scansサービスがなると、連絡先に通知を送ります。
かなりきちんとしているんでしょう?
参照: ステータスの追跡