Nagiosの設定は、少し複雑で、初めて見るとどこから手をつけて良いか分からないです。
そこで、Nagiosの設定の、本当の中心の部分、一番基本的な部分だけを紹介します。
Nagiosの設定ファイルを眺める。
$ ls /etc/nagios/
cgi.cfg conf.d nagios.cfg objects passwd private servers
読んで字のごとく、nagios.cfgがNagiosの設定の中心部です。objectsというディレクトリがあり、この中にホストごとの設定などの詳細な設定ファイルがあります。
$ ls /etc/nagios/objects
commands.cfg contacts.cfg localhost.cfg printer.cfg switch.cfg templates.cfg timeperiods.cfg windows.cfg
localhost.cfgが初期状態で入っている自ホストの監視設定であることがわかります。
Nagiosの基本概念、ホストとサービス
Nagiosのメニューを見ると、ホスト、サービス、ホストグループ、サービスグループ、と並んでいます。
これを見て分かるように、Nagiosの最も基本的な概念はホストとサービスというところに集約されています。
以下、localhost.cfgの内容を見ながら、これらの概念を理解していきます。
ホスト(監視対象)の設定
このホストを監視します、という宣言。監視対象のホストを指定します。
define host{
use linux-server
host_name localhost
alias localhost
address 127.0.0.1
}
この場合は、127.0.0.1のサーバにlocalhostというIDをふってホストとして登録します。これによって、Nagiosの画面にlocalhostの監視項目が出てきます。
Nagiosの設定ファイルはオブジェクト指向のように継承をおこなうことができます。実際にはホストに関する詳細な設定ができるのですが、その設定はlinux-serverという名前で別に記述していて、それを継承しています。
linux-serverの設定の実態は、templates.cfgに入っています。実際にみてみると、このlinux-serverの設定自体も、generic-hostという設定を継承していて多階層の継承関係を持つことが分かります。設定の継承によって差分記述ができ、複雑な設定も簡潔にまとめることができます。
ホストグループの設定
単一のホストを定義したら、そのホストをまとめて管理するホストグループの設定をします。
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members localhost
}
これは単に複数のホストをまとめて一つのグループとして管理しようというだけです。membersには、先に定義したホストを、コンマ区切りで複数列挙することができます。
サービス(監視内容)の設定
ここまでは監視対象の設定でした。その監視対象の「何を監視するか?」をサービスの設定に記述します。
define service{
use local-service
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
host_nameで対象のホストと、check_commandで監視コマンドを設定します。コマンドは、関数の引数のようにして警告のしきい値を設定します。
ここでもホストと同様にuseでサービスの継承をしています。またtemplates.cfgを見てみると、local-serviceはgeneric-serviceを継承していて、こちらも多階層の継承関係になっています。
超基本のまとめ
Nagiosの設定は一見複雑なのですが、基本的には、監視対象であるホストを登録し、監視内容であるサービスを登録するだけです。設定は他の設定を継承することができ、複雑な設定も簡潔に記述することができます。
コメント