Linux/CentOSでNagios

CentOSでNagios

先にNagiosユーザを作成しておく。

# useradd nagios

GDをインストールしておく。

ステータスマップや、レポートを表示する為にはGDがインストールされている必要がある。
最新版

# yum install gd-devel

ダウンロード

日本語パッチ

# wget http://jaist.dl.sourceforge.jp/nagios-jp/38828/nagios-3.1.0-ja-utf8.patch.gz

※日本語化して使用したい場合、日本語パッチのバージョンに合わせたNagiosソースをダウンロードします。

Nagiosソース

# wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nagios-3.1.0.tar.gz

インストール

# tar zxvf nagios-3.1.0.tar.gz
# cd nagios-3.1.0
# gzip -dc ../nagios-3.1.0-ja-utf8.patch.gz |patch -p0
# ./configure --prefix=/home/nagios
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# chkconfig --add nagios

Nagios Pluginインストール

最新版

# wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
# tar zxvf nagios-plugins-1.4.14.tar.gz 
# cd nagios-plugins-1.4.14
# ./configure --prefix=/home/nagios --enable-per-modules
# make
# make install

さざ波フォントインストール

# wget http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2
# tar jxvf sazanami-20040629.tar.bz2 
# mkdir /home/nagios/etc/font
# cp sazanami-20040629/sazanami-gothic.ttf /home/nagios/etc/font/font.ttf

httpd.confの修正

ScriptAlias /nagios/cgi-bin/ /home/nagios/sbin/
<Directory "/home/nagios/sbin">
#  SSLRequireSSL
  Options ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
#  Order deny,allow
#  Deny from all
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /home/nagios/etc/.htpasswd
  Require valid-user
</Directory>

Alias /nagios/ /home/nagios/share/
<Directory "/home/nagios/share">
#  SSLRequireSSL
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
#  Order deny,allow
#  Deny from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /home/nagios/etc/.htpasswd
   Require valid-user
</Directory>

AddDefaultCharset UTF-8

.htpasswd作成

# htpasswd -c /home/nagios/etc/.htpasswd nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin

Apache再起動

# /sbin/service httpd restart

nagios.cfgの編集

# vi /home/nagios/etc/nagios.cfg ← nagios.cfg編集
cfg_dir=/home/nagios/etc/servers ← 行頭の#を削除(コメント解除)

date_format=iso8601 ← 日付書式をYYYY-MM-DD HH:MM:SSにする

これで、「/home/nagios/etc/server」以下のファイルをインクルードするようになる。

Basic認証を行わない場合

# vi /home/nagios/etc/cgi.cfg
use_authentication=1
         ↓
use_authentication=0

※Basic認証でのログインユーザによって権限が決められており、デフォルトの監理ユーザは「nagiosadmin」です。
権限等を変更する場合は「/home/nagios/etc/cgi.cfg」を修正する。

# grep -n nagiosadmin cgi.cfg 
119:authorized_for_system_information=nagiosadmin
131:authorized_for_configuration_information=nagiosadmin
144:authorized_for_system_commands=nagiosadmin
157:authorized_for_all_services=nagiosadmin
158:authorized_for_all_hosts=nagiosadmin
171:authorized_for_all_service_commands=nagiosadmin
172:authorized_for_all_host_commands=nagiosadmin

Nagios設定ファイルの例

# cat /home/nagios/etc/servers/service.cfg 
#################################################
# SERVICE                                       #
#################################################
define service{
        use                             generic-service
        hostgroup_name                  test
        #host_name                      ma21.ath.cx
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0        }
define service{        use                             generic-service
        hostgroup_name                  test
        #host_name                      ma21.ath.cx
        check_command                   check_ssh
        notifications_enabled           0
        }
define service{
        use                             generic-service
        hostgroup_name                  test
        #host_name                      ma21.ath.cx
        check_command                   check_smtp
        notifications_enabled           0
        }

# cat /home/nagios/servers/test.cfg
#################################################
# HOST                                          #
#################################################
define host{
        use                     linux-server
        host_name               ma21.ath.cx
        alias                   CentOS
        address                 ma21.ath.cx
        contact_groups          admins
        }
define host{
        use                     linux-server
        host_name               test.ath.cx
        alias                   CentOS
        address                 test.ath.cx
        contact_groups          admins
        }

#################################################
# HOST GROUP                                    #
#################################################
define hostgroup{
        hostgroup_name  test
        alias           under test
        members         ma21.ath.cx,test.ath.cx
        }

Web上からnagiosのコマンドを実行できるようにするには。。。

こんなエラーでWeb上からコマンドが発行できない。

エラー: コマンドファイル'/home/nagios/var/rw/nagios.cmd'をアップデートできません。


外部コマンドファイルもしくは、ディレクトリのパーミッションに誤りがある可能性があります。パーミッションが適切かどうか確認してください。 


コマンドを処理する際にエラーが発生しました。

手順

# /usr/sbin/groupadd nagiocmd
# /usr/sbin/usermod -G nagioscmd nagios
# /usr/sbin/usermod -G nagiocsmd apache
# mkdir /home/nagios/var/rw 
# chmod nagios:nagioscmd /home/nagios/var/rw
# chmod ug+rwx /home/nagios/rw
# chmod g+s /home/nagios/rw

・Apache、Nagiosを再起動

# /sbin/service httpd restart
# /sbin/service nagios restart

設定のチェックコマンド

# /home/nagios/bin/nagios -v /home/nagios/etc/nagios.cfg

結果がこれなら正常です。

Total Warnings: 0
Total Errors:   0

Nagios終了ステータス

•0:OK •1:WARNING •2:CRITICAL •3:UNKNOWN

3Dステータスマップを表示するにはVRMLブラウザというものが必要になります。

Cortonaなど

http://www.6996.jp/wiki/index.php?Nagios

nagios.cfgの日本語

http://www.on-sky.net/~hs/diary/images/nagios.cfg-sample.ja.txt