
Nagios でサービス ステータスをチェックし、サービス ステータスに関する SMS メッセージを送信します。
一部の問題は夜間には重要ではないため、夜間に送信しないことを好みます。
define timeperiod{
timeperiod_name non_work
alias Non work hours
sunday 00:00-24:00
monday 00:00-09:00,18:00-24:00
tuesday 00:00-09:00,18:00-24:00
wednesday 00:00-09:00,18:00-24:00
thursday 00:00-09:00,18:00-24:00
friday 00:00-09:00,18:00-24:00
saturday 00:00-24:00
}
しかし、朝には新しい問題だけでなく、すべての問題が送信されるようにしたいです。どのように設定すればよいでしょうか?
それとも、nagios にはこの機能がないのでしょうか?
答え1
夜には重要ではない問題もある
おっしゃるとおり、Nagios ではチェック、通知、通知グループ、個々のユーザーに適用できる期間を設定できます。もちろん、チェックは実行するように指定しても通知は送信されない場合は、電子メールに問題が表示されません。ただし、NagiosのWebページでいつでも完全なアラート履歴を見ることができます。. 夜間のアラートを朝一番にメールで送るcronジョブをスケジュールしてみてはいかがでしょうか? 例:
0 8 * * * wget -O /tmp/nagios.html -i /home/user/nagioslist; mail [email protected] </tmp/nagios.html
/home/user/nagioslist には次のような内容が含まれます:
http://example.com/nagios/cgi-bin/summary.cgi?report=1&displaytype=1
&timeperiod=last24hours&hostgroup=all&servicegroup=all&host=all&alerttypes=3
&statetypes=2&hoststates=7&servicestates=120&limit=1000
(これにより、過去 24 時間に検出された最大 1000 個のハード状態が表示されます)
一方、延期したい通知に対して実行する別の通知スクリプトを設定し、それらをキューに入れて後で送信することもできます (例: 'at' を使用)。
または、特定の間隔でのみ送信メールを処理するように MTA を設定することもできます。異なる電子メール アドレスや異なる件名を組み合わせると、受信者、件名、時刻に基づいてメールを効果的に優先順位付けしたり延期したりできます。
答え2
Nagios がデフォルトでこれを行わないかどうかはわかりません。通知期間を逆にして、非勤務時間ではなく勤務時間だけを含めるようにする必要があります。
これをテストするのは簡単です。デフォルトで失敗するチェックと、それに応じて設定された通知期間を現在の時刻の数分後に定義し、この期間にのみメッセージを受信するかどうかを確認します。
これが機能しない場合は、escalation_period ステートメントを使用して、夜間にメールを送信し、勤務時間中に SMS を送信するなど、エスカレーション スキームを試してみることができます。