nagiosの設定
nagiosの設定ファイルについて
4つのファイル構成で成り立っている
- 本体設定ファイル nagios.cfg
- CGI設定ファイル cgi.cfg
- リソース設定ファイル resorce.cfg
- オブジェクト設定ファイル
デフォルトの状態
| 基準ディレクトリ | /usr/local/nagios/etc |
| htpasswd.users | Basic認証ファイル |
| nagios.cfg | nagios設定ファイル本体 |
| cgi-cfg | cgi関連の設定 |
| resource.cfg | $USERx変数設定ファイル |
| objects/command.cfg | 各コマンドの名前とコマンドラインの設定ファイル |
| objects/contacts.cfg | 通知先の定義設定ファイル |
| objects/localhost.cfg | localhostの監視設定ファイル |
| objects/printer.cfg | プリンター監視の設定ファイル |
| objects/switch.cfg | スイッチ監視の設定ファイル |
| objects/templates.cfg | ホスト監視の設定ファイルテンプレート |
| objects/timeperiods.cfg | 時間の定義設定ファイル |
| objects/windows.cfg | windowsサーバー監視の設定ファイル |
- nagiosは設定ファイル本体nagios.cfgが唯一指定するファイル
- nagios.cfg内でその他の設定ファイルを読み込むことができる
このことより、設定ファイルの配備については柔軟に構成できる!
設定ファイルを読み込む指定とディレクトリを指定する方法の2種類ある
| cfg_file=<cfgファイル> | 指定されたファイルを読み込む |
| cfg_dir=<パス> | パスで指定されたディレクトリ内の拡張子.cfgを全て読み込む |
デフォルトで提供されている設定ファイルをサンプルとしてカスタマイズしていく
コマンドライン(command.cfg)で使用される$USER1はresource.cfg内で/usr/local/nagios/libexecとして指定されている
コマンド設定ファイル(command.cfg)内ではデフォルトで24個のコマンドが設定されている
設定されたコマンド名を使って監視ホスト内でdefine serviceブロックに記述できる
| notify-host-by-email | |
| notify-service-by-email | |
| check-host-alive | |
| check_local_disk | |
| check_local_load | |
| check_local_procs | |
| check_local_users | |
| check_local_swap | |
| check_local_mrtgtraf | |
| check_ftp | |
| check_hpjd | |
| check_snmp | |
| check_http | |
| check_ssh | |
| check_dhcp | |
| check_ping | |
| check_pop | |
| check_imap | |
| check_smtp | |
| check_tcp | |
| check_udp | |
| check_nt | |
| process-host-perfdata | |
| process-service-perfdata |
通知先設定ファイル(contacts.cfg)には管理者としてのnagiosadminと管理グループのadminsが設定されている
時間設定ファイル(timeperiods.cfg)には24×7や休日などの設定がある
localhost監視設定ファイルを元に設定ファイルを解析すると…
- define hostでホスト定義、ホスト名/エイリアス名/IPアドレス等
- define hostgroupでグループ定義、グループ名/エイリアス名/メンバーホスト等
- define serviceで監視対象サービス定義
ホスト定義
書式
*は必須項目
テンプレート設定
define host {
name テンプレート名*
register [0/1]* 0で登録しない、テンプレートとして明示的に設定する
その他の設定 ここにテンプレートとして各種項目を設定する
}
define host {
host_name ホスト名*
alias エイリアス名*
address IPアドレス*
max_check_attempts #*
check_period 時間定義名*
contacts 通知先名*
contact_groups 通知先グループ名*
notification_interval #*
notification_period 時間定義名*
use テンプレート名
parents 親オブジェクト名
check_command check-host-alive
hostgroups グループ名
contact_groups 通知先グループ名
その他の設定 ここにテンプレートとして各種項目を設定する
}
