使用自定义视图/模板监视工具?

我目前正在寻找像zabbixicinga这样的开源监控解决scheme。 虽然这两者在监视硬件和软件的通用状态方面似乎非常强大,但是我缺less信息 – 对我来说 – 重要的function,或者我只是阅读他们的文档无法弄清楚它是如何工作的。

我想在这样一个监控工具中集成一些工作队列。 一方面,我需要知道队列的总结信息,如通用可用性等,这些与其中一个工具集成是没有问题的。 另一方面,我想有更多关于队列中发生的事情的详细信息。

我想开发一个插件,它可以返回任意数量的详细数据 – 比如存储在队列中的每个作业的信息 – 我可以填写一个自定义的视图/模板,我可以很好地集成在其中一个监视工具。

zabbix,icinga或任何其他开源监控解决scheme可能吗?

你有没有考虑过Nagios? 它允许编写插件(使用任何语言),并且通常可以轻松地将它们集成到监视框架中。 事实上,所有运行Nagios的用户都有可能在那里做一个你想做的事情。

为了在队列中存储关于作业或特定内容的更多特定信息,可以考虑使用Nagios收集代理构build一些简单的Web CGI脚本,以从服务器获取所需的数据。

由于Nagios在Apache下运行,这可能是一种可能的方法。

既然你已经添加了nagios标签,我给你一个例子和NRPE。

首先,用最喜欢的语言编写你自己的插件。 记住返回码:

 0 - OK 1 - WARNING 2 - CRITICAL 3 - UNKNOWN 

这是shell脚本片段,用于监视Redis中列表的长度:

 #!/bin/sh help() { echo "Usage: $0 <host> <port> <key> -w <warning> -c <critical>" } case "$1" in --help) help exit ;; esac if [ $# -eq 0 ]; then help exit 3 fi if [ $# -ne "7" ]; then help exit 4 fi if [ $4 !="-w" -o $6 !="-c" ]; then help exit 5 fi REDIS_CLI="/usr/local/bin/redis-cli" LLEN=`echo "$3" | $REDIS_CLI -h $1 -p $2 llen` if [ $LLEN -lt $5 ]; then echo "$3.llen:$2 OK - $LLEN | $3.llen:$2=$LLEN;$5;$7" exit 0 elif [ $LLEN -ge $5 -a $LLEN -lt $7 ]; then echo "$3.llen:$2 WARNING - $LLEN | $3.llen:$2=$LLEN;$5;$7" exit 1 elif [ $LLEN -ge "$7" ]; then echo "$3.llen:$2 CRITICAL - $LLEN | $3.llen:$2=$LLEN;$5;$7" exit 2 fi 

其次,在/etc/nagios/nrpe.cfg定义一个命令,如下所示:

 command[check_queue]=/usr/lib64/nagios/plugins/check_queue.sh <host> <port> \ <queue_name> -w <warning_threshold> -c <critical_threshold> 

第三,在Nagios服务器上,这个插件可以被调用:

 define service{ use generic-service host_name <remote_server> service_description <queue_name> check_command check_nrpe!check_queue contact_groups admin-sms }