这是分布式 Icinga 1 环境。
我在 Icinga 1 客户端/卫星上大约有 100 台主机处于 UNREACHABLE 状态。对每台主机的所有四次检查均返回 OK 状态,但设备的整体状态为 UNREACHABLE。
该问题可能是由于我让 Icinga 1 以错误的 /usr/lib64/nagios/plugins/check_icmp 权限运行而引起的。(check_icmp 没有设置 suid 位。)
因此我停止了 Icinga 并清空了卫星上的状态保留文件 (state_retention_file=/var/spool/icinga/retention.dat),但这没有帮助。如果我清空主服务器上的同一个文件,会有帮助吗?
ps 显示我的submit_check_result.sh submit_host_check.sh脚本作为僵尸运行,但它们存活的时间不长。
答案1
我必须在客户端上恢复我的支票转发脚本。
以下是一些破碎的部分。
# BEGIN submit_check_result.sh
##############################
return_code=-1
case "$3" in
OK)
return_code=0
;;
WARNING)
return_code=1
;;
CRITICAL)
return_code=2
;;
CRITICAL)
return_code=2
;;
esac
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/sbin/send_nsca -H 111.14.219.31 -c /etc/nagios/send_nsca.cfg &
# END Check_result
##############################
BEGIN submit_host_result.sh
##############################
return_code=2
case "$3" in
OK)
return_code=0
;;
WARNING)
return_code=1
;;
CRITICAL)
return_code=2
;;
UNKNOWN)
return_code=2
;;
esac
END Check_host
##############################
答案2
以下似乎已经修复了该问题。
猫/etc/icinga/scripts/submit_check_result.sh
return_code=-1
case "$3" in
OK)
return_code=0
;;
WARNING)
return_code=1
;;
CRITICAL)
return_code=2
;;
UNKNOWN)
return_code=-1
;;
esac
# pipe the service check info into the send_nsca program, which
# in turn transmits the data to the nsca daemon on the central
# monitoring server
# submit to master Icinga den-mon-prod
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/sbin/send_nsca -H 111.14.219.31 -c /etc/nagios/send_nsca.cfg &
猫/etc/icinga/scripts/submit_host_check.sh
return_code=-1
case "$2" in
UP)
return_code=0
;;
DOWN)
return_code=1
;;
DOWN)
return_code=2
;;
UNREACHABLE)
return_code=3
;;
esac
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/sbin/send_nsca -H 111.14.219.31 -c /etc/nagios/send_nsca.cfg &