がらくたネット


nagiosの設定

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 通知先グループ名
    その他の設定 ここにテンプレートとして各種項目を設定する
}