Nagios の期間と通知について
今日は、オープンソース監視ツールである Nagios 4.5.1 内で通知設定を管理する際の課題を詳しく掘り下げます。時間に敏感な通知の構成は、特に複数のサーバーがある環境では複雑な作業になることがよくあります。この記事は、営業時間外に不要なアラートを回避するために効果的な通知ウィンドウを設定する際に発生する特定の問題に対処することを目的としています。
ここでは、午後 7 時 30 分から午前 9 時の間に監視すべきではない 3 つの特定のサーバーに焦点を当てます。正しく構成を試みたにもかかわらず、これらのサーバーは指定された待機時間外に通知をトリガーし続けます。次のセクションでは、Nagios が定義された期間を確実に遵守するために、考えられる原因と解決策を検討します。
指示 | 説明 |
---|---|
define timeperiod | 監視または通知の目的で Nagios 内に新しい期間を定義し、運用時間を指定します。 |
notification_period | 特定のホストまたはサービスについて通知を送信する期間を指定します。 |
sed -i | ファイルをインプレースで変更するためにストリーム エディター (sed) を使用します。ここでは、構成ファイルを編集して通知を動的に有効または無効にするために使用されます。 |
date +%H:%M | 現在の時刻を時と分で取得するコマンド。これは、現在時刻が指定された範囲内にあるかどうかを判断するために使用されます。 |
[[ "$TIME_NOW" > "$START_TIME" || "$TIME_NOW" < "$END_TIME" ]] | 通知設定を制御するために、現在時刻が開始時刻より後であるか終了時刻より前であるかをチェックする条件付き bash スクリプト ステートメント。 |
echo | ターミナルまたはスクリプトログにメッセージを出力します。通知の有効または無効を確認するために使用されます。 |
Nagios 設定スクリプトの詳細な説明
最初のスクリプトは、新しいスクリプトを定義するために重要です。 timeperiod Nagios 内で、午後 7 時 30 分から午前 9 時までの静かな時間を必要とする特定のサーバーのニーズに合わせて、監視通知を送信しない時間を指定します。これを設定することで timeperiod Nagios 構成では、アラートによってこの期間が中断されることはありません。さらに、スクリプトは notification_period 「Printemps-Caen」サーバーがこの新しく定義された期間を使用し、これらの設定を効果的に適用して、通知がカスタム スケジュールに従って制御されるようにします。
2 番目のスクリプトは、現在の時刻に基づいて電子メール通知設定を動的に調整する Bash シェル スクリプトです。それは、 date コマンドを使用して現在時刻を取得し、条件付きステートメントを使用して事前定義された開始時刻と終了時刻と比較します。現在時刻が制限時間内にある場合、スクリプトは sed Nagios 設定ファイルを変更するコマンド、具体的には service_notification_options 通知を無効にします。このアプローチにより、時間に基づいて通知動作をリアルタイムで自動制御でき、柔軟で応答性の高いシステム管理ツールが提供されます。
Nagios での通知期間の構成
Nagios 設定スクリプト
# Define a new time period for the specified hosts
define timeperiod {
name night-hours
alias Night Hours 7:30 PM - 9 AM
sunday 21:30-24:00,00:00-09:00
monday 21:30-24:00,00:00-09:00
tuesday 21:30-24:00,00:00-09:00
wednesday 21:30-24:00,00:00-09:00
thursday 21:30-24:00,00:00-09:00
friday 21:30-24:00,00:00-09:00
saturday 21:30-24:00,00:00-09:00
}
# Modify the host to use the new time period for notifications
define host {
use generic-router
host_name Printemps-Caen
alias Printemps Caen
address 192.168.67.1
hostgroups pt-caen-routers
notification_period night-hours
}
Nagios での電子メール通知フィルターのスクリプト作成
Bash を使用した電子メール通知の調整
#!/bin/bash
# Script to disable email notifications during specific hours
TIME_NOW=$(date +%H:%M)
START_TIME="21:30"
END_TIME="09:00"
if [[ "$TIME_NOW" > "$START_TIME" || "$TIME_NOW" < "$END_TIME" ]]; then
# Commands to disable email notifications
sed -i 's/service_notification_options w,u,c,r,f,s/service_notification_options n/' /etc/nagios/contacts.cfg
echo "Notifications disabled during off-hours."
else
# Commands to enable email notifications
sed -i 's/service_notification_options n/service_notification_options w,u,c,r,f,s/' /etc/nagios/contacts.cfg
echo "Notifications enabled."
fi
Nagios の高度な構成テクニック
通知期間を制御するための Nagios 構成を拡張すると、ホストとサービス間の依存関係管理の役割を考慮することが不可欠です。これにより、管理者はプライマリ ホストがダウンした場合に依存ホストからの通知を防ぐことができるため、通知ノイズが減り、根本原因の分析に重点を置くことができます。依存関係を適切に使用すると、アラートが意味のあるものになり、実行可能になるため、大規模環境における Nagios の有効性が大幅に向上します。
これには構成が含まれます host_dependency そして service_dependency Nagios 設定ファイル内の定義。さまざまなネットワーク コンポーネント間の論理関係を定義することにより、Nagios は、関連するサービスまたはホストのステータスに基づいて通知をインテリジェントに抑制またはエスカレーションできます。これは、インシデント対応手順の明確性を維持するために重要です。
Nagios の時間帯と通知に関するよくある質問
- とは何ですか timeperiod ナギオスでは?
- あ timeperiod 通知を送信できる、または送信できない特定の時間を定義し、アラート疲労の管理に役立ちます。
- カスタムを作成するにはどうすればよいですか timeperiod?
- 使用 define timeperiod Timeperiods.cfg ファイル内のディレクティブを使用して、曜日ごとの開始時刻と終了時刻を指定します。
- 定義された範囲外の通知をまだ受信しているのはなぜですか timeperiods?
- を確認してください。 notification_period 各ホストまたはサービスが意図したものに正しくリンクされているかどうか timeperiod。構成ミスやテンプレートからの継承により、特定の設定が上書きされる可能性があります。
- 特定の期間中に特定の種類の通知を除外できますか? timeperiods?
- はい、さまざまな通知オプション (警告、重大、回復など) を設定して、指定した期間中にアクティブまたは抑制することができます。 timeperiods。
- 間違った場合の影響は何ですか timeperiod アラート管理の設定?
- 正しくない timeperiod この設定により、営業時間外に不要なアラートが発生し、ノイズが増加し、営業時間中に重要なアラートが見逃される可能性があります。
通知管理に関する最終的な考え
Nagios での通知期間の効果的な管理は、不必要な中断をせずに沈黙期間を維持することを目指すシステム管理者にとって非常に重要です。期間が正しく定義され、ホストおよびサービスの定義に適切にリンクされていることを確認すると、誤った通知を大幅に減らすことができます。この設定は、ノイズを最小限に抑えるのに役立つだけでなく、運用時間中の実際の問題への集中力を強化し、それによって IT インフラストラクチャの全体的な効率と応答性が向上します。