模式2 带参数
nrpe 安装中带 --enable-command-args 参数
nrpe.cfg 中添加
dont_blame_nrpe=1 才能接受用户传递参数
commandcheck_file_num=/usr/local/nagios/libexec/check_file_num.sh ARG1
监控机上
command.cfg 【改名】
#check_file
define command{
command_name check_file_num
command_line USER1/check_nrpe -H HOSTADDRESS -c ARG1 -a ARG2
}
#services.cfg 文件
define service{
use local-service
host_name nagios-client
service_description Current File Num
check_command check_file_num!check_file_num!"-w 40 -c 70"
}
./check_nrpe -H 192.168.146.170 -c check_file_num -a 40 80
KILL 进程并重启nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
重启监控机上的nagios服务
/etc/init.d/nagios reload
#############固定端口检测
1.agent 配置修改
nrpe.cfg
commandcheck_port_80=/usr/local/nagios/libexec/check_port 80
2.重启nrpe 客户端
kill -9 nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
3.添加脚本
vi /usr/local/nagios/libexec/check_port
#!/bin/bash
port="$1"
tips="`netstat -anpl|grep -iE \":${1}\b\"|grep LISTEN|wc -l`"
if $tips -gt 0
then
echo 1
else
echo 0
fi
4.监控机服务添加
define service{
use hk-service,service-pnp
host_name haproxy_136
service_description http_80
check_command check_nrpe!check_port_80
}
5.重载nagios服务
/etc/init.d/nagios reload
自定义Nagios NRPE脚本EXIT退出值和nagios状态都应关系:
自定义Nagios NRPE脚本EXIT退出值和nagios状态都应关系:
|----------|---------|----------------------------------|-----------------------------------------|
| 状态 | EXIT退出值 | 输出 | 例子 |
| OK | 0 | echo "OK - it's ok." | echo "OK - it's ok." exit 0 |
| WARNING | 1 | echo "WARNING - it's warning." | echo "WARNING - it's warning." exit 1 |
| CRITICAL | 2 | echo "CRITICAL - it's critical." | echo "CRITICAL - it's critical." exit 2 |
| UNKNOWN | 3 | echo "UNKNOWN - it's unknown." | echo "UNKNOWN - it's unknown." exit 3 |
错误的例子:
shell脚本中echo和退出值:
echo "OK - it's ok."
exit 1
此时,Nagios会显示:
这条服务对应的状态是"WARNING",但是输出的信息是"OK - it's ok."