リモートホストサービス監視(Nagios+nrpe)

最終更新日: 2014.02.19

<<トップページ <<新着情報 <<サイト内検索 <<CentOSで自宅サーバー構築 <<Scientific Linuxで自宅サーバー構築

■概要

Nagiosのアドオンnrpeで他サーバーのサービスを監視する。

Nagios導入済であること


■nrpeインストール

(1)Nagiosサーバー側
[root@fedora ~]# wget http://jaist.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz ← nrpeダウンロード

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

[root@fedora ~]# tar zxvf nrpe-2.12.tar.gz ← nrpe展開

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

[root@fedora nrpe-2.12]# ./configure && make check_nrpe && make install-plugin ← nrpeプラグインインストール

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

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

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

(2)監視対象サーバー側
[root@centos ~]# yum -y install xinetd ← nrpeインストールに必要なパッケージをインストール

[root@centos ~]# yum -y install openssl-devel ← nrpeインストールに必要なパッケージをインストール

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

[root@centos ~]# mkdir /usr/local/nagios ← nrpeインストール先ディレクトリ作成

[root@centos ~]# chown nagios:nagios /usr/local/nagios/ ← nrpeインストール先ディレクトリ所有者変更

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

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

[root@centos ~]# tar zxvf nrpe-2.12.tar.gz ← nrpe展開

[root@centos ~]# cd nrpe-2.12 ← nrpe展開先ディレクトリへ移動

[root@fedora nrpe-2.12]# ./configure && make nrpe && make install-daemon && make install-daemon-config && make install-xinetd
 ← nrpeインストール

[root@centos nrpe-2.12]# cd ← nrpe展開先ディレクトリを抜ける

[root@centos ~]# rm -rf nrpe-2.12 ← nrpe展開先ディレクトリを削除

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

[root@centos ~]# yum -y install mysql-devel ← 監視対象サーバーのMySQLを監視する場合

[root@centos ~]# wget http://jaist.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.12.tar.gz ← Nagiosプラグインダウンロード

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

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

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

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

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

[root@centos nagios-plugins-1.4.12]# vi /usr/local/nagios/libexec/check_mem.pl ← メモリチェックプラグイン修正
$command_line = `vmstat | tail -1 | awk '{print \$4,\$5}'`;
↓
$command_line = `free | head -3 | tail -1 | awk '{print \$3,\$4}'`; ← 変更

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

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

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

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

■nrpe設定

(1)Nagiosサーバー側
[root@fedora ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
以下を最終行へ追加
# 'check_nrpe' command definition
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

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

(2)監視対象サーバー側
[root@centos ~]# echo "nrpe 5666/tcp # NRPE" >> /etc/services ← TCP5666をnrpeのサービスポートとして追加

[root@centos ~]# vi /etc/xinetd.d/nrpe ← xinetd用nrpe設定ファイル編集
service nrpe
{
        flags           = REUSE
        socket_type     = stream
        port            = 5666
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1 192.168.1.20 ← 追加(NagiosサーバーのIPアドレス)
}

■nrpe起動

(1)監視対象サーバー側
[root@centos ~]# /etc/rc.d/init.d/xinetd restart ← xinetd再起動(nrpe起動)
xinetd を停止中:                                           [  OK  ]
xinetd を起動中:                                           [  OK  ]

■監視サービス追加

例としてホスト名centosの監視サービスを追加する。
※ホスト名centosは監視ホストとして追加済であること統合監視システム構築(Nagios)の「■監視ホスト追加」参照

(1)CPU負荷
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
command[check_load]=/usr/local/nagios/libexec/check_load -w 9.0,7.0,6.0 -c 10.0,8.0,7.0
 ← ロードアベレージが9.0,7.0,6.0で警告、10.0,8.0,7.0で異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Current Load
        check_command                   check_nrpe!check_load
        }

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

(2)ディスク空き状況
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p / ← /(ルート)パーティションの空きが20%で警告、10%で異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Root Partition
        check_command                   check_nrpe!check_disk
        }

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

(3)メモリ空き状況
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -f -w 20 -c 10 ← 空きメモリ量が20%で警告、10%で異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Memory Free
        check_command                   check_nrpe!check_mem
        }

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

(4)プロセス数
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 250 -c 400 -s RSZDT ← プロセス数が250で警告、400で異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Total Processes
        check_command                   check_nrpe!check_total_procs
        }

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

(5)ログインユーザー数
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
command[check_users]=/usr/local/nagios/libexec/check_users -w 3 -c 5 ← ログインユーザー数が3で警告、5で異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Current Users
        check_command                   check_nrpe!check_users
        }

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

(6)SSH
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_ssh]=/usr/local/nagios/libexec/check_ssh -H 127.0.0.1

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             SSH
        check_command                   check_nrpe!check_ssh
        }

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

(7)NTP
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_ntp]=/usr/local/nagios/libexec/check_ntp -H 外部NTPサーバーIPアドレス -w 1 -c 2
 ← 外部NTPサーバーと時間が1秒ずれていたら警告、2秒ずれていたら異常とする

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             NTP
        check_command                   check_nrpe!check_ntp
        }

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

(8)clamd※監視対象サーバー側にClam AntiVirus導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_clamd]=/usr/local/nagios/libexec/check_clamd -H /var/run/clamav/clamd.sock
 ← /var/run/clamav/clamd.sockはclamd.confのLocalSocketオプションで指定した値

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             clamd
        check_command                   check_nrpe!check_clamd
        }

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

(9)DNS※監視対象サーバー側にBIND導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_dig]=/usr/local/nagios/libexec/check_dig -H 127.0.0.1 -l centossrv.com
 ← 名前解決ホスト名に監視対象サーバーのドメイン名を指定

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             DNS
        check_command                   check_nrpe!check_dig
        }

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

(10)HTTP※監視対象サーバー側にApache導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_http]=/usr/local/nagios/libexec/check_http -H 127.0.0.1

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             HTTP
        check_command                   check_nrpe!check_http
        }

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

(11)SMTP※監視対象サーバー側にメールサーバー導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_smtp]=/usr/local/nagios/libexec/check_smtp -H 127.0.0.1

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             SMTP
        check_command                   check_nrpe!check_smtp
        }

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

(12)POP※監視対象サーバー側にメールサーバー導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_pop]=/usr/local/nagios/libexec/check_pop -H 127.0.0.1

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             POP
        check_command                   check_nrpe!check_pop
        }

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

(13)IMAP※監視対象サーバー側にメールサーバー導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_imap]=/usr/local/nagios/libexec/check_imap -H 127.0.0.1 -p 143

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             IMAP
        check_command                   check_nrpe!check_imap
        }

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

(14)amavisd※監視対象サーバー側にamavisd導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_amavisd]=/usr/local/nagios/libexec/check_tcp -H 127.0.0.1 -p 10024

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             amavisd
        check_command                   check_nrpe!check_amavisd
        }

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

(15)spamd※監視対象サーバー側にSpamAssassin導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_spamd]=/usr/local/nagios/libexec/check_tcp -H 127.0.0.1 -p 783

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             spamd
        check_command                   check_nrpe!check_spamd
        }

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

(16)Samba※監視対象サーバー側にSamba導入済の場合のみ
[root@centos ~]# yum -y install samba-client ← samba-clientインストール

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

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

[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_samba]=/usr/local/nagios/libexec/check_disk_smb -H Sambaサーバーホスト名 -s Samba共有名 -W Sambaワークグループ名 -u Sambaユーザ名 -p Sambaユーザパスワード

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             Samba
        check_command                   check_nrpe!check_samba
        }

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

(17)MySQL※監視対象サーバー側にMySQL導入済の場合のみ
[root@centos ~]# vi /usr/local/nagios/etc/nrpe.cfg ← nrpe.cfg編集※監視対象サーバー側
以下を最終行へ追加
command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 127.0.0.1 -u root -p MySQLのrootユーザパスワード

[root@fedora ~]# vi /usr/local/nagios/etc/servers/centos.cfg ← centos.cfg編集※Nagiosサーバー側
以下を最終行へ追加
define service{
        use                             generic-service
        host_name                       centos
        service_description             MySQL
        check_command                   check_nrpe!check_mysql
        }

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

■監視サービス追加確認

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


■関連コンテンツ




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

プライバシーポリシー