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