統合監視システム構築(Nagios)

最終更新日: 2008.04.13

<<トップページ <<新着情報 <<質問BBS <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<ダウンロード <<管理人へメール <<CentOSで自宅サーバー構築

■概要

統合監視システムNagios(日本語訳)でシステムを監視する。

スクリーンショット(統合監視状態ホスト稼動状態サービス稼動状態)

Webサーバー構築済であること


■Nagiosインストール

(1)Nagiosインストール
[root@fedora ~]# yum -y install gd-devel ← Nagiosに必要なgd-develをインストール

[root@fedora ~]# useradd -d /usr/local/nagios/ -M nagios ← nagiosユーザ作成

[root@fedora ~]# wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.1.tar.gz ← Nagiosダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora ~]# tar zxvf nagios-3.0.1.tar.gz ← Nagios展開

[root@fedora ~]# cd nagios-3.0.1 ← Nagios展開先ディレクトリへ移動

[root@fedora nagios-3.0.1]# wget http://jaist.dl.sourceforge.jp/nagios-jp/30391/nagios-3.0.1-ja-utf8.patch.gz
 ← Nagios日本語化パッチダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora nagios-3.0.1]# gzip -dc nagios-3.0.1-ja-utf8.patch.gz |patch -p0 ← Nagios日本語化パッチ施行

[root@fedora nagios-3.0.1]# ./configure && make all && make fullinstall && make install-config ← Nagiosインストール

[root@fedora nagios-3.0.1]# cd ← Nagios展開先ディレクトリを抜ける

[root@fedora ~]# rm -rf nagios-3.0.1 ← Nagios展開先ディレクトリを削除

[root@fedora ~]# rm -f nagios-3.0.1.tar.gz ← ダウンロードしたファイルを削除


(2)さざなみフォントインストール
「傾向」、「警報ヒストグラム」で表示される画像の日本語化に必要なさざなみフォントのインストール
[root@fedora ~]# wget http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2 ← さざなみフォントダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora ~]# tar jxvf sazanami-20040629.tar.bz2 ← さざなみフォント展開

[root@fedora ~]# mkdir /usr/local/nagios/etc/font ← フォント格納先ディレクトリ作成

[root@fedora ~]# cp sazanami-20040629/sazanami-gothic.ttf /usr/local/nagios/etc/font/font.ttf
 ← さざなみフォントをフォント格納先ディレクトリへコピー

[root@fedora ~]# rm -rf sazanami-20040629 ← さざなみフォント展開先ディレクトリを削除

[root@fedora ~]# rm -f sazanami-20040629.tar.bz2 ← ダウンロードしたファイルを削除

(3)Nagiosプラグインインストール
[root@fedora ~]# wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz ← Nagiosプラグインダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora ~]# tar zxvf nagios-plugins-1.4.11.tar.gz ← Nagiosプラグイン展開

[root@fedora ~]# cd nagios-plugins-1.4.11 ← Nagiosプラグイン展開先ディレクトリへ移動

[root@fedora nagios-plugins-1.4.11]# ./configure && make && make install ← Nagiosプラグインインストール

[root@fedora nagios-plugins-1.4.11]# cp contrib/check_mem.pl /usr/local/nagios/libexec/ ← メモリチェックプラグインインストール

[root@fedora nagios-plugins-1.4.11]# chmod +x /usr/local/nagios/libexec/check_mem.pl ← メモリチェックプラグインへ実行権限付加

[root@fedora nagios-plugins-1.4.11]# cd ← Nagiosプラグイン展開先ディレクトリを抜ける

[root@fedora ~]# rm -rf nagios-plugins-1.4.11 ← Nagiosプラグイン展開先ディレクトリを削除

[root@fedora ~]# rm -f nagios-plugins-1.4.11.tar.gz ← ダウンロードしたファイルを削除

■Nagios設定

[root@fedora ~]# vi /usr/local/nagios/etc/nagios.cfg ← nagios.cfg編集
cfg_dir=/usr/local/nagios/etc/servers ← 行頭の#を削除(コメント解除)

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

[root@fedora ~]# vi /usr/local/nagios/etc/cgi.cfg ← cgi.cfg編集
ttf_file=/usr/local/nagios/etc/font/font.ttf ← 行頭の#を削除(コメント解除)

[root@fedora ~]# mkdir /usr/local/nagios/etc/servers ← サーバー監視設定ファイル格納ディレクトリ作成

[root@fedora ~]# vi /usr/local/nagios/etc/objects/contacts.cfg ← contacts.cfg編集
define contact{
        contact_name                    nagiosadmin             ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin            ; Full name of user

        email                           管理者メールアドレス ← 管理者メールアドレスを指定
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← localhost.cfg編集
define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           1 ← 1を指定して通知を有効化
        }

define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           1 ← 1を指定して通知を有効化
        }

■Apache設定

[root@fedora ~]# usermod -G nagios apache ← apacheユーザをnagiosグループに所属させる

[root@fedora ~]# vi /etc/httpd/conf.d/nagios.conf ← Nagios用Apache設定ファイル編集
<Directory "/usr/local/nagios/sbin">
#  SSLRequireSSL
   Options ExecCGI
   AllowOverride None
   Order allow,deny
#   Allow from all ← 行頭に#を追加(コメントアウト)
#  Order deny,allow
#  Deny from all
   Allow from 127.0.0.1 ← 行頭の#を削除(コメント解除)
   Allow from 192.168.1.0/24 ← 内部ネットワークアドレスを指定
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user
</Directory>

<Directory "/usr/local/nagios/share">
#  SSLRequireSSL
   Options None
   AllowOverride None
   Order allow,deny
#   Allow from all ← 行頭に#を追加(コメントアウト)
#  Order deny,allow
#  Deny from all
   Allow from 127.0.0.1 ← 行頭の#を削除(コメント解除)
   Allow from 192.168.1.0/24 ← 内部ネットワークアドレスを指定
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user
</Directory>

[root@fedora ~]# /etc/rc.d/init.d/httpd reload ← Apache設定反映
httpd を再読み込み中:                                      [  OK  ]

[root@fedora ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin ← Nagios管理ユーザ作成
New password: ← 任意のパスワード応答※表示はされない
Re-type new password: ← 任意のパスワード応答(確認)※表示はされない
Adding password for user nagiosadmin

■Nagios起動

[root@fedora ~]# /etc/rc.d/init.d/nagios start ← Nagios起動
Starting nagios: done.

[root@fedora ~]# chkconfig --add nagios ← Nagios起動スクリプトをchkconfigへ追加

[root@fedora ~]# chkconfig nagios on ← Nagios自動起動設定

■Nagios確認

http://サーバー名/nagios/へアクセスし、NgiosのWebインタフェース画面が表示されることを確認。※ユーザ名/パスワードはhtpasswdコマンドで作成したNagios管理ユーザのユーザ名/パスワードを指定する
デフォルトの監視項目は自ホストの「CPU負荷」、「ログインユーザー数」、「Webサーバー稼動状況」、「ネットワーク障害」、「ディスク空き状況」、「SSHサーバー稼動状況」、「SWAP空き状況」、「プロセス数」。

※3Dステータスマップを閲覧する場合はWebブラウザにVRMLプラグインをインストールする

■監視ホスト追加

例としてホスト名centos、IPアドレス192.168.1.30を監視ホストとして追加する。

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← ホスト名.cfg作成
define host{
        use                     linux-server
        host_name               centos
        alias                   centos
        address                 192.168.1.30
        }

define service{
        use                             generic-service
        host_name                       centos
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

■監視ホスト追加確認

http://サーバー名/nagios/へアクセスし、「ホスト稼動状態」で追加したホストが表示されることを確認。

■監視サービス追加(自ホスト編)

(1)メモリ空き状況
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_mem' command definition
define command{
        command_name    check_mem
        command_line    $USER1$/check_mem.pl -f -w $ARG1$ -c $ARG2$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             Memory Free
        check_command                   check_mem!20!10 ← 空きメモリ量が20%で警告、10%で異常とする
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(2)ログインユーザー数
[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
define service{
        use                             generic-service
        host_name                       localhost
        service_description             Current Users
        check_command                   check_local_users!3!5 ← ログインユーザー数が3以上で警告、5以上で異常とする
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(3)NTP
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_ntp' command definition
define command{
        command_name    check_ntp
        command_line    $USER1$/check_ntp -H $ARG1$ -w $ARG2$ -c $ARG3$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             NTP
        check_command                   check_ntp!外部NTPサーバーIPアドレス!1!2
         ← 外部NTPサーバーと時間が1秒ずれていたら警告、2秒ずれていたら異常とする
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(4)clamdClam AntiVirus導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_clamd' command definition
define command{
        command_name    check_clamd
        command_line    $USER1$/check_clamd -H $ARG1$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             clamd
        check_command                   check_clamd!/tmp/clamd.socket
         ← /tmp/clamd.socketはclamd.confのLocalSocketオプションで指定した値
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(5)DNSBIND導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_dig' command definition
define command{
        command_name    check_dig
        command_line    $USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             DNS
        check_command                   check_dig!fedorasrv.com ← 名前解決ホスト名に自ドメイン名を指定
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(6)SMTP※メールサーバー(Postfixqmail)導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             SMTP
        check_command                   check_smtp
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(7)POP※メールサーバー(Postfixqmail)導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
# 'check_pop' command definition
define command{
        command_name    check_pop
        command_line    $USER1$/check_pop -H $HOSTADDRESS$ -s quit ← 「-s quit」追加
        }
※「-s quit」はDovecotがpop3-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, securedという
エラーメッセージをログに出力しないようにする対処

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             POP
        check_command                   check_pop
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(8)IMAP※メールサーバー(Postfixqmail)導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
# 'check_imap' command definition
define command{
        command_name    check_imap
        command_line    $USER1$/check_imap -H $HOSTADDRESS$ -s "A2 logout" ← 「-s "A2 logout"」追加
        }
※「-s "A2 logout"」はDovecotがimap-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, securedという
エラーメッセージをログに出力しないようにする対処

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             IMAP
        check_command                   check_imap
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(9)amavisdamavisd導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_amavisd' command definition
define command{
        command_name    check_amavisd
        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 10024
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             amavisd
        check_command                   check_amavisd
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(10)spamdSpamAssassin導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_spamd' command definition
define command{
        command_name    check_spamd
        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 783
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             spamd
        check_command                   check_spamd
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(11)SambaSamba導入済の場合のみ
[root@fedora ~]# yum -y install samba-client ← samba-clientインストール

[root@fedora ~]# vi /usr/local/nagios/libexec/check_disk_smb ← check_disk_smbプラグイン編集
my $smbclient= "/usr/bin/smbclient" ; ← smbclientコマンドパス設定

[root@fedora ~]# echo SambaサーバーIPアドレス※ Sambaサーバーホスト名 >> /etc/samba/lmhosts
 ← lmhostsへSambaサーバーのIPアドレス/ホスト名を追加する
※SambaサーバーIPアドレスにループバックアドレス(127.0.0.1)は指定できない

[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_disk_smb' command definition
define command{
        command_name    check_disk_smb
        command_line    $USER1$/check_disk_smb -H $ARG1$ -s $ARG2$ -W $ARG3$ -u $ARG4$ -p $ARG5$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             Samba
        check_command                   check_disk_smb!Sambaサーバーホスト名!Samba共有名!Sambaワークグループ名!Sambaユーザ名!Sambaユーザパスワード
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

(12)MySQLMySQL導入済の場合のみ
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_mysql' command definition
define command{
        command_name    check_mysql
        command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$
        }

[root@fedora ~]# vi /usr/local/nagios/etc/objects/localhost.cfg ← services.cfg編集
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       localhost
        service_description             MySQL
        check_command                   check_mysql!root!MySQLのrootユーザパスワード
        }

[root@fedora ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done
Stopping nagios: done.
Starting nagios: done.

■監視サービス追加確認(自ホスト編)

http://サーバー名/nagios/へアクセスし、「サービス稼動状態」で追加したサービスが表示されることを確認。



▲このページのトップへ戻る

LPIロゴ Copyright© 2004-2008 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします