默認安裝nagios客戶端nrpe是沒有傳遞功能的。傳遞的好處:省去很多不必要的重複定義的監控。
客戶端(test-135):
在編譯nrpe的時候加上--enable-command-args
useradd -s /sbin/nologin nagios
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
tar xvf nrpe-2.12.tar.gz -C /usr/local/src
cd /usr/local/src/nrpe-2.12/
./configure --prefix=/data/nagios --with-nagios-user=nagios --with-nagios-group=nagios --enable-command-args
make all
make plugin
make install-daemon
make install-daemon-config
vim /data/nagios/etc/nrpe.cfg
allowed_hosts=服務端IP
dont_blame_nrpe=0 ##0改爲1,允許命令參數的傳遞
command[check_disk_nrpe]=/data/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ ##舉例添加一個監控磁盤空間傳遞,命令中$ARG1$、$ARG2$、$ARG3$參數。等會我們在nagios服務器上傳遞的參數,就是這個進行一一對應
vim /
/data/nagios/bin/nrpe -c /data/nagios/etc/nrpe.cfg -d ##啓動nrpe
/data/nagios/libexec/check_tcp -H 127.0.0.1 ##測試是否安裝成功
NRPE v2.12
服務端:
這裏的服務端nagios位置:/data/nagios
vim /data/nagios/etc/objects/commands.cfg
增加disk nrpe參數:
define command{
command_name check_disk_test
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
}
##check_disk_test:表示定義一個名叫check_nrpe的命令,以後我們要使用的話就可以通過use直接引用該命令。
##command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$:命令中$ARG1$參數接收的是被監控主機nrpe.cfg文件中定義的監控命令,在此我們是以check_disk_test命令爲例的。-a表示接收額外的參數,其中$ARG2$參數對應被監控主機check_disk_test命令中的$ARG1$參數,$ARG3$參數對應被監控主機check_disk_test命令中的$ARG2$參數,$ARG4$參數對應被監控主機check_disk_test命令中的$ARG3$參數。
nagios_hosts文件定義test-135,這裏就不說明了
vim vim /data/nagios/etc/linux/services/sqa-services.cfg
define service{
use generic-service
host_name test-135
service_description nrpe_disk
check_command check_disk_test!check_disk_nrpe!10%!5%!/
}
到此就完成nrpe傳遞了,假設客戶端還有一塊存儲盤掛到/data1下面了,需要監控,服務端只需要添加如下:
vim vim /data/nagios/etc/linux/services/sqa-services.cfg
define service{
use generic-service
host_name test-135
service_description nrpe_disk_data1
check_command check_disk_test!check_disk_nrpe!10%!5%!/data1
}
nrpe傳遞節省了很多重複定義的監控,方便管理和操作,本文只是說明nrpe傳遞功能,只貼出來了涉及nrpe傳遞功能相關文件