Nagios-1.2

最終更新日時:2008-10-21 17:25:45
Nagios

※これを書いている時点での最新はnagios-3.0.4です。
※従って、ここの記述はかなり古いものとなっているので、最近のバージョンとは異なる箇所が多々あります。
最新版についてはNagiosのメモを参照。

インストール


nagios-1.2 の例です。

まず初めに、Nagios 用のユーザ、グループが必要となるので作成します。

 # useradd nagios -d /usr/local/nagios
 # chmod 755 /usr/local/nagios


次に、Nagios 公式サイトよりアーカイブとプラグインを取得し、展開します。

 % gzip -dc nagios-1.2.tar.gz | tar xvf -
 % gzip -dc nagios-plugins-1.3.1.tar.gz | tar xvf -


以下のように Nagios 本体をインストールします。
通常はデフォルトで問題ないですが、必要であれば configure 時にパラメータを指定します(ユーザ名とか)
make install-init は /etc/init.d に起動スクリプトをコピーしたくない場合(daemontools を使う場合とか)は実行しません。
make install-commandmode はコマンドのパーミッションの設定、make install-config は設定ファイルのサンプルのインストールを行うので必ず実行します。

 % ./configure
 % make all
 % su
 # make install
 # make install-init
 # make install-commandmode
 # make install-config


本体のインストール後、以下のようにプラグインをインストールします。

 % ./configure
 % make
 % make check
 % su
 # make install


設定


Nagios の設定項目は非常に多いので、最初から全てを設定しようとするのは非常に不効率です。
従って、インストールされたサンプル設定ファイルを使用して設定を行います。
サンプル設定ファイルは $NAGIOSHOME/etc 下にあり、これをリネームして使用します。
各ファイルの概要と最低限の修正項目は以下の通り。
もっと細かい設定をしたい人は日本語ドキュメントを見ましょう。

nagios.cfg


Nagios のメイン設定ファイルです。
基本的にはここで各設定ファイルをインクルードする形になります。
通常は、このファイル自体はデフォルト状態でOKですが、使用しないファイルをcfg_file=...指定している場合にはコメントアウトしておくとよいでしょう

checkcommands.cfg


監視チェック用のコマンドの設定をします。
特殊な監視がなければ無変更でOKですが、Nagios が標準で libexec に用意しているコマンド以外を使う場合、もしくは標準で用意されていてもcheckcommands.cfg内で定義されていない方法で使う場合には、checkcommands.cfgで定義する必要があります。
例えば、check_aacraidを使ってRAIDの監視を行う場合には、以下のように記述します。

 define command{
        command_name    check_aacraid
        command_line    $USER1$/check_aacraid -H $HOSTADDRESS$ -C $ARG1$
 }


contactgroups.cfg


通知グループの設定をします。
新規に作成します。
例えば koumei2,koumei3 という通知先を admin という通知グループに設定するには以下のような感じになります。

 define contactgroup{
        contactgroup_name       admin
        alias                   Admin
        members                 koumei2,koumei3
 }


contacts.cfg


通知の設定をします。
新規に作成します。
例えば、koumei2 という通知先を設定するには以下のような感じになります。

 define contact{
        contact_name                    koumei2
        alias                           koumei2
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-by-email
        host_notification_commands      host-notify-by-email
        email                           koumei2@aaa.com
 }


hostgroups.cfg


ホストグループを設定します。
新規に作成します。
例えば、wwwとwww2をlightly.plala.jp というホストグループとして設定する場合には以下のような感じになります。
なお、下記の例だと、lightly.plala.jp ホストグループに障害が発生した場合にはadmin通知グループにアラートメールが送信されます。

 define hostgroup{
        hostgroup_name  lightly.plala.jp
        alias           Lightly and Leniently
        contact_groups  admin
        members         www,www2
 }


hosts.cfg


ホストの設定をします。
新規に作成します。
ホストの設定は各ホスト共通の部分があることが多いので、以下のように共通設定を generic-host として設定しておくと管理しやすくなります。

 define host{
        name                            generic-host
        notifications_enabled           1
        event_handler_enabled           1
        flap_detection_enabled          1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        notification_interval   0
        notification_period     24x7
        notification_options    d,u,r
        register                        0
 }


以下、wwwというホストの設定例です。

 define host{
        use                     generic-host
        host_name               www
        alias                   Web Server1
        max_check_attempts  1
 }


services.cfg


サービスの設定をします。
新規に作成します。
サービスの設定もホストの設定と同様に、各サービスで共通な部分があることが多いので以下のように共通設定を generic-serviceとしておくと管理しやすくなります。

 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
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        contact_groups                  admin
        notification_period             24x7
        notification_interval           0
        retry_check_interval            1
        register                        0
 }


以下、httpの監視をする時の例です。

 define service{
        use                             generic-service
        host_name                       www,www2
        service_description             HTTP
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval   10
        notification_options    w,u,c,r
        check_command                   check_http
 }


無変更のもの


通常は無変更のまま使えばよいものは以下の通りです。

ファイル名概要
timeperiods.cfg時間帯設定
resource.cfgリソースの設定
misccommands.cfgその他のコマンド設定
cgi.cfgCGI の設定


不使用なもの


通常は不使用でよいものは以下の通りです。

ファイル名概要
escalations.cfgエスカレーション設定
dependencies.cfg依存関係の設定


実行


まず、設定ファイルを作成、修正した場合には、以下のようにして設定ファイルのチェックを行うようにしましょう。

 # nagios -v nagios.cfg 


設定ファイルが問題ないようであれば以下のようにして実行します。

 # nagios -d nagios.cfg 


-d はデーモンとして実行することを意味しています。
-d を付けなければ、foreground で起動されます。
また、make install-init で init ファイルをインストールした場合には、以下で実行した方がよいでしょう(この場合デーモンモードで起動されます)。

 # /etc/init.d/nagios start 


Apache の設定


Nagios での監視状態を Web 上で閲覧することが可能です。
そのための HTML と CGI が用意されているので、それらを参照可能にするように Web サーバを設定すればOKです。
ただし、これらの監視情報を閲覧するためのセキュリティのチェックに BASIC 認証を使用することが前提となっているので、こちらも合わせて設定する必要があります。
デフォルトの設定でインストールを行い、Web サーバに Apache が使われているとすると、以下のような設定を httpd.conf に追加します。

 ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
 <Directory "/usr/local/nagios/sbin/">
    AllowOverride AuthConfig
    Options ExecCGI
    Order allow,deny
    Allow from all
 </Directory>
 Alias /nagios/ /usr/local/nagios/share/
 <Directory "/usr/local/nagios/share">
    Options None
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
 </Directory>


お問い合わせは 掲示板 にて。