Nagiosの設定
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
それ以外のファイルについては、特に使う必要はありませんが、必要があれば使用可能です。