Nagios は、利用可能なオープン ソース サーバーおよびネットワーク監視ソリューションの中で最高のものの 1 つです。柔軟な nagios フレームワークを使用すると、ほぼすべてのもの (データベースやカスタム アプリケーションを含む) を監視できます。この記事では、4 つの簡単な手順を使用して、ホストまたはサービスに問題が発生したときに通知を受け取る連絡先の定義を設定する方法について説明します。
Nagios をセットアップして Windows サーバーを監視する方法、Linux サーバーを監視する方法、VPN セッションを監視する方法、およびネットワーク スイッチを監視する方法についても説明しました。
1. templates.cfg で汎用連絡先テンプレートを定義
Nagios をインストールすると、連絡先を作成するための参照として使用できるデフォルトの汎用連絡先テンプレートが提供されます。以下の一般的な連絡先テンプレートに記載されているすべてのディレクティブは必須であることに注意してください。そのため、連絡先でジェネリック連絡先テンプレート定義を使用しないことにした場合は、連絡先内でこれらすべての必須定義を自分で定義する必要があります。
次の汎用連絡先は、/usr/local/nagios/etc/objects/templates.cfg で既に利用可能です。また、以下に示すように、templates.cfg はデフォルトで nagios.cfg に含まれています。
このジェネリック テンプレートを使用して実際の連絡先を定義すると、templates.cfg に記載されているこれらのディレクティブのいずれかが上書きされる可能性があることに注意してください。
# grep templates /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg Note: generic-contact is available under /usr/local/nagios/etc/objects/templates.cfg define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email register 0 }
- 名前 – これは、連絡先テンプレートの名前を定義します (generic-contact)。
- service_notification_period – これは、nagios がサービスの問題 (Apache のダウンなど) に関する通知をいつ送信できるかを定義します。デフォルトでは、これは /usr/local/nagios/etc/objects/timeperiods.cfg で定義されている 24×7 の期間です。
- host_notification_period – これは、nagios がホストの問題 (サーバーのクラッシュなど) に関する通知をいつ送信できるかを定義します。デフォルトでは、これは 24 時間 365 日です。
- service_notification_options – これは、送信できるサービス通知のタイプを定義します。デフォルトでは、これはフラッピング イベントを含むすべての可能なサービス状態を定義します。これには、予定されているサービス ダウンタイム アクティビティも含まれます。
- host_notification_options – これは、送信できるホスト通知のタイプを定義します。デフォルトでは、これはフラッピング イベントを含むすべての可能なホスト状態を定義します。これには、スケジュールされたホストのダウンタイム アクティビティも含まれます。
- service_notification_commands – デフォルトでは、連絡先がサービスの問題 (データベースのダウンなど) に関する通知を電子メールで受け取る必要があることを定義します。追加のコマンドを定義して、このディレクティブに追加することもできます。たとえば、独自の notify-service-by-sms コマンドを定義できます。
- host_notification_commands – デフォルトでは、連絡先がホストの問題 (ホストのダウンなど) に関する通知を電子メールで受け取る必要があることを定義します。追加のコマンドを定義して、このディレクティブに追加することもできます。たとえば、独自の notify-host-by-sms コマンドを定義できます。
2. contacts.cfg で個々の連絡先を定義
一般的な連絡先テンプレートが適切に定義されていることを確認したら、nagios からの通知を受け取る組織内のすべての人に対して、個々の連絡先の定義を開始できます。連絡先を定義したからといって、その連絡先が通知を受け取るわけではないことに注意してください。後で、この連絡先をサービスまたはホスト定義のいずれかに関連付ける必要があります (以降のセクションで説明します)。したがって、ここで考えられるすべての連絡先を自由に定義してください。 (たとえば、開発者、DBA、システム管理者、IT マネージャー、カスタマー サービス マネージャー、トップ マネジメントなど)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name sgupta use generic-contact alias Sanjay Gupta (Developer) email [email protected] pager [email protected] } define contact{ contact_name jbourne use generic-contact alias Jason Bourne (Sysadmin) email [email protected] }
3. contacts.cfg で複数の連絡先を持つ連絡先グループを定義する
個々の連絡先を定義したら、それらをグループ化して適切な通知を送信することもできます。たとえば、DBA だけがデータベース ダウン サービス定義について通知される必要があります。そのため、db-admins グループが必要になる場合があります。また、Apache がダウンしたときに通知を受ける必要があるのは Unix システム管理者だけかもしれません。そのため、unix-admins グループが必要になる場合があります。必要と思われる数のグループを自由に定義してください。後で、個々のサービスとホストの定義でこれらのグループを使用できます。
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg define contactgroup{ contactgroup_name db-admins alias Database Administrators members jsmith, jdoe, mraj } define contactgroup{ contactgroup_name unix-admins alias Linux System Administrator members jbourne, dpatel, mshankar }
4.連絡先グループまたは個々の連絡先をサービスおよびホスト定義に添付
個々の連絡先と連絡先グループを定義したら、次に示すように、それらを特定のホストまたはサービス定義に関連付ける作業を開始します。
Note: Following host is defined under /usr/local/nagios/etc/objects/servers/email-server.cfg. This can be any host definition file. define host{ use linux-server host_name email-server alias Corporate Email Server address 192.168.1.14 contact_groups unix-admins } Note: Following is defined under /usr/local/nagios/etc/objects/servers/db-server.cfg. This can be any host definition file. define service{ use generic-service host_name prod-db service_description CPU Load contact_groups unix-admins check_command check_nrpe!check_load } define service{ use generic-service host_name prod-db service_description MySQL Database Status contact_groups db-admins check_command check_mysql_db }