NRPE(Nagios Remote Plugin Executor)とは、
Nagiosにてリモート監視を行うためのプラグインで、
リモートサーバのリソース監視を行いたい場合などに用います。
(ローカルのみ監視をする場合は必要ありません)
仕組み的には
NagiosサーバからリモートサーバへNRPEを経由し監視したいコマンドを送信し、
コマンドを受け取ったリモートサーバ側のNRPEエージェントが監視コマンドを発行し、
その結果をNagiosサーバへNRPEを経由し送信する模様。
(このときの使用するポート番号は5666である。リモートサーバ側は開放する必要がある)
→まずはnetstat -lnにて確認.
■Nagiosサーバ側■
Nrpeの取得&展開
$cd /usr/local/src/ $ wget http://downloads.sourceforge.net/nagios/nrpe-2.12.tar.gz $ tar zxvf nrpe-2.12.tar.gz $ cd nrpe-2.12
コンパイル&インストール
$ ./configure *** Configuration summary for nrpe 2.12 03-10-2008 ***: General Options: ------------------------- NRPE port: 5666 NRPE user: nagios NRPE group: nagios Nagios user: nagios Nagios group: nagios Review the options above for accuracy. If they look okay, type 'make all' to compile the NRPE daemon and client. $ make check_nrpe $ make install-plugin # NagiosにNRPEプラグインを登録(無い場合は) $ cp ./src/check_nrpe /usr/local/nagios/libexec
○nagiosQLにてコマンドとサービスを作成する
# Nagios再起動
$ service nagios restart
リモートホスト側(あらかじめNagiosサーバ側からのポートを開放しておく)
準備
$ /usr/sbin/useradd nagios $ mkdir /usr/local/nagios /usr/local/nagios/bin /usr/local/nagios/libexec /usr/local/nagios/etc
最新版をダウンロード
$ cd /usr/local/src/ $ wget http://downloads.sourceforge.net/nagios/nrpe-2.12.tar.gz $ tar zxvf nrpe-2.12.tar.gz $ cd nrpe-2.12
コンパイル
$ ./configure --prefix=/usr/local/nagios $ make
プログラム・設定ファイルのコピー
$ cp ./src/nrpe /usr/local/nagios/bin $ cp ./sample-config/nrpe.cfg /usr/local/nagios/etc
インストールファイルの削除
$ cd ../ $ rm -rf nrpe-2.12.tar.gz nrpe-2.12
NagiosPluginのインストール
最新版をダウンロード
$ wget http://downloads.sourceforge.net/nagiosplug/nagios-plugins-1.4.13.tar.gz?modtime=1222335829&big_mirror=0 $ tar zxvf nagios-plugins-1.4.13.tar.gz $ cd nagios-plugins-1.4.13
コンパイル
$ ./configure --prefix=/usr/local/nagios $ make $ make install
# スタンドアロンのプラグインをコピー $ cp contrib/* /usr/local/nagios/libexec/ $ chmod 705 /usr/local/nagios/libexec/*
インストールファイルの削除
$ cd ../ $ rm -rf nagios-plugins-1.4.13 nagios-plugins-1.4.13.tar.gz
メモリ監視プラグインの改変
$ 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}'`;
NRPEの設定
# コマンドの登録
$ vi /usr/local/nagios/etc/nrpe.cfg // 任意のサービスを登録(しきい値やHDDのパーティションは環境に合わせて変える) command[check_load]=/usr/local/nagios/libexec/check_load -w 9.0,7.0,6.0 -c 10.0,8.0,7.0 command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p / command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -f -w 20 -c 10 $ chmod 644 /usr/local/nagios/etc/nrpe.cfg
起動設定(xinetに登録)
$ vi /etc/services // 以下を追記 nrpe 5666/tcp # NRPE
xinetdへ登録する
$ vi /etc/xinetd.d/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
only_from = (NAGIOSサーバのIPアドレス)
}
# xinetの再起動(NRPEの起動)
$ /etc/rc.d/init.d/xinetd restart
それでは早速、Nagiosの画面で確認です
無事うまくいきました。
画像が小さいですが
サービス名”NRPE”の箇所で
リモートサーバをNRPE経由で監視できています。
またサーバ設定事態はnagiosQLにて行っており、
以前作成した定義ファイルのインポート機能もあるので楽チンです。

補足:
ここでの環境では
NRPE経由にて実行できるコマンド群は以下となります。
(もちろん追加可能)
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
以下のメッセージが表示された場合
CHECK_NRPE: Error – Could not complete SSL handshake.
リモートサーバ側のnrpe.cfgのオーナー・権限を確認
ちょっとコレではまってしまいました…
chown nagios:nagios /usr/local/nagios/etc/nrpe.cfg







