如何在nagios中监控crond服务

how to monitor crond service in nagios

我想在 Nagios 中监控 crond 服务。

我尝试使用创建以下脚本并放置在 /usr/local/nagios/libexec/

CRON_RESULT=$(/etc/init.d/crond status)
STATUS=`echo $CRON_RESULT| grep pid`
if [ -z "$STATUS" ]; then
        echo "CROND CRITICAL- $CRON_RESULT"
        exit 2
else
        echo "CROND OK- $CRON_RESULT"
        exit 0
fi

如果没有 cron 运行(显示 CRITICAL)并且如果 运行(显示 OK),它工作正常。

但是,如果 NRPE 客户端无法从 Nagios 服务器访问,crond 服务将状态显示为 "OK"(绿色)并显示一条消息 return code of 255 is out of bounds。而且我不知道 crond 是否 运行。

在 CentOS 6.6 中有没有其他方法可以监控 crond 服务?

从 Nagios 服务器上的 libexec 目录,针对包含您要监视的 crond 服务的主机的 IP 地址手动执行 check_nrpe 命令:

[root@joeyoung.io libexec]# pwd
/usr/local/nagios/libexec
[root@joeyoung.io libexec]# ./check_nrpe -H 10.0.0.1
connect to address 10.0.0.1 port 5666: No route to host

在 运行 check_nrpe 之后立即执行 echo $? 以获取 return 代码。

[root@joeyoung.io libexec]# echo $?
255

如果您得到 255(或 0 以外的任何数字)的结果,那么您在手动执行 check_nrpe 时收到的错误消息是问题根本原因的征兆。

你可以尝试 运行 这个并报告吗?

我搜索并发现它是 nrpe v2.15 中的错误,所以我在 Nagios Server 上恢复到 nrpe v2.12 并解决了这个问题。