默认安装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传递功能相关文件