Nagiosの設定

最終更新日時:2010-08-10 17:24:08
Nagios

Nagiosの設定


Nagios の設定項目は非常に多いので、一から全てを設定しようとするのは非常に大変です。
従って、インストールされたサンプル設定ファイルを使用して設定を行います。
設定ファイルはNagiosをインストールしたディレクトリのetc以下にあり、サンプルファイルもこの下にインストールされています。
参考までに、各ファイルの概要と簡単な設定を記述しておきます。

nagios.cfg


Nagiosのメイン設定ファイルです。
このファイル内でも様々な設定項目がありますが、基本的には他の設定ファイルインクルードするのが主となるかと思います。

 cfg_file=/usr/local/nagios/etc/objects/commands.cfg


のような形式になります。
必要な設定ファイルは既にインクルードする設定になっているので、不要なファイルをインクルードするのをやめるのと、独自の設定ファイルのインクルードを行えばOKです。
他の設定は必要があれば行う程度でよいですが、time_change_thresholdだけは必ず設定する必要があります。
time_change_thresholdはデフォルトでは設定されておらず、この状態では起動時にエラーが出てしまいます。

 time_change_threshold=10


なお、time_change_thresholdの正確に意味するところはよく分からないのですが、5以下を指定すると小さすぎてエラーが出ますので、5よりも大きな数値を指定する必要があります。

commands.cfg


アラート送付のコマンド、各監視のためのコマンドを定義します。
基本的には変更する必要はありませんが、例えば以下のように設定すると、アラートメールをsendmailで送信することができます。

 command_line    /usr/bin/printf "%b" \
                 "To: $CONTACTEMAIL$\n
                  From: nagios\n
                  Subject: ** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **\n\n
                  ***** Nagios  *****\n\n
                  Notification Type: $NOTIFICATIONTYPE$\n\n
                  Service: $SERVICEDESC$\n
                  Host: $HOSTALIAS$\n
                  Address: $HOSTADDRESS$\n
                  State: $SERVICESTATE$\n\n
                  Date/Time: $DATETIME$\n\n
                  Additional Info:\n\n
                  $OUTPUT$"
                 | /usr/sbin/sendmail -t


その他チェック用のコマンドの設定方法はNagiosコマンドの設定を参照。

contacts.cfg


アラートの通知先のユーザー、グループの設定をします。
ユーザーの定義では適用するテンプレートを指定することが出来ます。
テンプレートを指定すると、contact内のブロックで明示的に設定を記述していなくても、テンプレート内で設定した内容が適用されます。
実際に障害時の通知先にはここで定義をしたグループ宛に通知されることになります。

 define contact{
        contact_name    koumei2;通知先名
        use             generic-contact;適用するテンプレート
        alias           adminuser;通気先別名
        email           koumei2@xxx.com;通知先メールアドレス
 }
 
 define contactgroup{
        contactgroup_name       admin;グループ名
        alias                   Admin;グループ別名
        members                 koumei2;メンバー。複数の場合にはカンマ区切りで記述
 }


templates.cfg


contact,service,hostのテンプレートを定義します。
たいていの設定は似たような設定になりますので、テンプレートを定義しておくことで大幅に効率化することができます。

 define service{
        name                            generic-service
        active_checks_enabled           1
        passive_checks_enabled          1
        parallelize_check               1
        obsess_over_service             1
        check_freshness                 0
        notifications_enabled           1
        event_handler_enabled           1
        flap_detection_enabled          1
        failure_prediction_enabled      1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              1
        normal_check_interval           5
        retry_check_interval            1
        notification_options            w,u,c,r
        notification_interval           0
        notification_period             24x7
        register                        0;これによりテンプレートとして識別される
 }



監視ホスト/サービス設定ファイル


設定のメインは監視するホスト/サービスの設定です。
以下、ホスト、ホストグループ、サービスの設定例です。

 define host{
        use                     generic-host;使用するテンプレート
        host_name               fujisawa.homedns.org;ホスト名
        alias                   lightly;ホスト別名
        contact_groups          admin;アラート通気先グループ(複数設定可)
 }
 
 define hostgroup{
        hostgroup_name  lightly;ホストグループ名
        alias           Lightly;ホストグループ別名
        members         fujisawa.homedns.org;メンバーホスト
 }
 
 define service{
        use                             generic-service;使用するテンプレート
        host_name                       fujisawa.homedns.org;対象ホスト名(複数設定可)
        service_description             HTTP;サービス概要
        check_command                   check_http_dns;監視に使用するチェックコマンド
        contact_groups                  admin;アラート通知先グループ(複数設定可)
 }


その他の設定ファイル


以下のファイルはそのまま使えば問題ありません。

・cgi.cfg
・resource.cfg
・timeperiods.cfg

それ以外のファイルについては、特に使う必要はありませんが、必要があれば使用可能です。

お問い合わせは 掲示板 にて。