Fedora Core 4 Nagios



Nagiosとは・・・

指定されたタイミングでサーバーの各種サービスのステータスを収集するフリーの高機能ネットワーク・サーバ監視ツール。
プラグインでさまざまなサービス(プロセス)の死活監視ができ、Webから状態を確認できる。

前準備

Nagiosを実行するためのユーザとグループを作成しておきます。

# groupadd nagios
# useradd -g nagios nagios
# groupadd nagcmd

作成したユーザとApacheで指定されている実行ユーザー(Httpd.conf内でUserに指定されているもの)をコマンドグループとして所属。

# usermod -G nagcmd nobody
# usermod -G nagcmd nagios

Nagiosのインストールディレクトリの作成

# mkdir /usr/local/nagios
# chown nagios:nagios /usr/local/nagios

ソースファイルの入手・展開

Nagiosの公式サイトよりソースファイルを取得 ここでは執筆時の最新バージョン2.0b6を選択してます。 最新バージョンを確認して相応に置き換えてください Nagiosの公式ページ http://www.nagios.org/

$ wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nagios-2.0b6.tar.gz

DLしたファイルを解凍

$ tar xfz nagios-2.0b6.tar.gz

コンフィグ

$ cd nagios-2.0b6
$ ./configure --prefix=/usr/local/nagios \
> --with-cgiurl=/nagios/cgi-bin \
> --with-htmurl=/nagios \
> --with-nagios-group=nagios \
> --with-command-group=nagcmd

コンフィグが成功すると下記を表示する。

*** Configuration summary for nagios 2.0b6 11-30-2005 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
            Embedded Perl:  no
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
                Lock file:  ${prefix}/var/nagios.lock
           Init directory:  /etc/rc.d/init.d
                  Host OS:  linux-gnu

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  /bin/traceroute


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

コンパイル

コンパイル

$ make all

正常にコンパイルできると下記のメッセージを表示する。

*** Compile finished ***

If the main program and CGIs compiled without any errors, you
can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):

  make install
     - This installs the main program, CGIs, and HTML files

  make install-init
     - This installs the init script in /etc/rc.d/init.d

  make install-commandmode
     - This installs and configures permissions on the
       directory for holding the external command file

  make install-config
     - This installs *SAMPLE* config files in /usr/local/nagios/etc
       You'll have to modify these sample files before you can
       use Nagios.  Read the HTML documentation for more info
       on doing this.  Pay particular attention to the docs on
       object configuration files, as they determine what/how
       things get monitored!


*** Support Notes *******************************************

If you have questions about configuring or running Nagios,
please make sure that you:

     - Look at the sample config files
     - Read the HTML documentation
     - Read the FAQs online at http://www.nagios.org/faqs

before you post a question to one of the mailing lists.
Also make sure to include pertinent information that could
help others help you.  This might include:

     - What version of Nagios you are using
     - What version of the plugins you are using
     - Relevant snippets from your config files
     - Relevant error messages from the Nagios log file

For those of you who are interested in contract support or
consulting services for Nagios, please visit:

       http://www.nagios.org/contractsupport

*************************************************************

Enjoy.

上記に記載してあったように、インストールする手順にそって行う。

$ su
PASSWORD:(root password入力)
# make install
# make install-init
# make install-commandmode
# make install-config

この作業で必要なファイルがインストールされる。

プラグインの入手

次に監視するためのスクリプトが書かれたプラグインが用意されているので、それらをインストールします。
公式からプラグインのファイルを入手します。

# wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.2.tar.gz

プラグインの解凍

# tar xzf nagios-plugins-1.4.2.tar.gz

コンフィグとコンパイル・インストール

# cd nagios-plugins-1.4.2
# ./configure --prefix=/usr/local/nagios
# make all
# make install

ここまでで、Nagiosに必要なファイルは用意できた。

Apacheの設定ファイル修正

NagiosのCGIディレクトリをApacheに設定追加します。

# vi /usr/local/apache2/conf/httpd.conf

下記の内容を追記

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

閲覧するPCを固定できるのであれば allow from で閲覧するPCのIPアドレスを記載する方がセキュリティー的にも安心できる。

APacheを再起動し、Nagiosのページが表示されるか確認。

# /etc/rc.d/init.d/httpd restart

URL http://サーバーアドレス/nagios/ にブラウザでアクセス
下記の画面が表示されれば、ここまでの設定は完了です。

&ref(): File not found: "nagios.gif" at page "Fedora Core 4 Nagios";

Nagiosの閲覧制限設定

閲覧制限かけるためにIDとパスワードを設定します。
テキストファイルで認証ファイルを作成します。

# vi /usr/local/nagios/sbin/.htaccess

下記の内容を入力

AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user

同じものを /usr/local/nagios/share にコピーする

# cp /usr/local/nagios/sbin/.htaccess /usr/local/nagios/share/

認証ユーザーのIDとパスワードを設定

# cd /usr/local/nagios/etc/
# /usr/local/apache2/bin/htpasswd -c htpasswd.users nagiosadmin
New Password:(パスワード入力)
Reinput Password: (パスワード再入力)

※ここでは例としてIDをnagiosadminにしているが、別のIDを設定することをお勧めします

設定ファイルの準備

設定ファイルは /usr/local/nagios/etc の配下に xxxxx.cfg-sample といった形式で用意されています。
これらのファイルをコピーします。

# cp *.cfg-sample *.cfg

使用しないサンプルファイルを退避させます。

# mkdir sample
# mv *-sample ./sample/

各設定ファイルについて

Nagiosの設定ファイルは数が多いので、まず各ファイルの用途について。

ファイル名用途
bigger.cfg数台をリモート監視するための設定
cgi.cfgCGIの動作設定
checkcommands.cfg監視を実行するためのコマンド設定
minimal.cfg監視設定するため最低限の設定
misccommands.cfgアラートを通知するためのコマンドの設定
nagios.cfgNagiosの主設定
resource.cfgリソースの設定

以上がsampleの設定で使用する設定ファイル。
この他に独自でサービスの設定を定義することも可能。
その際はnagios.cfg内に書かれている設定ファイル読み込みの箇所がコメント化されているので有効にすることで下記の設定ファイルを使用することもできる。

ファイル名用途
contactgroups.cfgアラート時の通知先グループの設定
contacts.cfgアラート時の通知先の設定
dependencies.cfg依存定義の設定
escalations.cfg詳細アラートの通知方法の設定
hostgroups.cfg監視対象となるホストのグループの設定
hosts.cfg監視対象となるホストの設定
services.cfg監視する各対象ホストのサービス設定
timeperiods.cfgアラート通知する時間帯の設定

これらの設定方法についてはドキュメントや他サイトで別途調べてください。

各設定ファイル内で notification_options 等の項目で使われている文字の意味です。

CCritical
ddown
rrecovery
uunreachable
wwarning

cgi.cfgの設定

このファイルはWebからの閲覧時に認証を有効にする設定を行います。

# vi cgi.cfg

下記の箇所を#をはずします。

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin,guest
authorized_for_all_hosts=nagiosadmin,guest

authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin

Webから閲覧した際に

Warning: Monitoring process may not be running! Click here for more info.

と表示される場合は下記も合わせて修正する。

# nagios_check_command=/usr/local/nagios/libexec/check_nagios /usr/local/nagios/var/status.log 5 'nagios'
  ↓
nagios_check_command=/usr/local/nagios/libexec/check_nagios /usr/local/nagios/var/status.log 5 '/usr/local/nagios/bin/nagios'

misccommands.cfgの設定

特に修正の必要はない。

nagios.cfgの設定

特に修正の必要はない。

checkcommands.cfgの設定

特に修正の必要はない。
環境に応じて、コマンドのパラメーターを修正することも可能

minimal..cfgの設定

デフォルトで用意されている監視設定の主ファイル
環境に応じて内容を修正する必要がある。
次項で設定の確認用にチェックコマンドを紹介しているので、その結果を参考にして、自分の環境にあった設定を行ってください。

わたしはここでHTTPとPOP・SMTPの監視設定を追加しました。
追加した内容は下記を参考にしてください。
一部伏せ文字を使用していますので、各自修正してください。

define service{
        host_name                       localhost
        service_description             HTTP
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           15
        retry_check_interval            5
        contact_groups                  admins
        notification_interval           0
        notification_period             24x7
        notification_options            c,r
        check_command                   check_http
        }

define service{
        host_name                       localhost
        service_description             SMTP
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           4
        retry_check_interval            1
        contact_groups                  admins
        notification_interval           240
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_smtp!xxxxx@xxxxxx.xxx
        }

define service{
        host_name                       localhost
        service_description             POP
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           4
        retry_check_interval            1
        contact_groups                  admins
        notification_interval           240
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_pop
        }

resource..cfgの設定

特に修正の必要はない。

設定の確認

コマンドで設定にエラーがないか確認できる。

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

特に問題なければ下記のような表示がされる。

Nagios 2.0b6
Copyright (c) 1999-2005 Ethan Galstad (http://www.nagios.org)
Last Modified: 11-30-2005
License: GPL

Reading configuration data...
   ・
   ・
   ・
   ・
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Nagios起動

すでにkineted用のスクリプトは用意されているので各ランレベルへ設定する。

# chkconfig --add nagios

Nagiosを起動させます。

# /etc/rc.d/init.d/nagios start

特にエラー表示もなく正常に起動できたら、Webで確認してみる。

あとがき

ここでは、あくまで参考レベルで記載したので、自分の納得いくまで設定を変えてみることをお勧めします。
私も、ここでは記載しませんが、細かいところをいくつか修正して利用しています。

またNagiosでは Status Map や 3-D Status Map で構成をイメージで表示できる機能を持っています。
私自身、特に必要としなかったので、設定を省いていますが、複数台監視する人やリモートで監視する場合は便利ですので、別途調べて利用してみるといいでしょう。
利用するに当たり、
gd, libjpeg, libpng, libpng10
などのライブラリが必要になります。
またアイコン集などもいろんなサイトで配布されていますので、利用してみるといいでしょう。



Last-modified: 2015-04-23 (木) 15:20:51 (964d)