如何计算使用 nsca 发送的被动检查的数量?

如何计算使用 nsca 发送的被动检查的数量?

我已为在 nagioshost 上运行的 perl 自定义脚本设置了 Nagios/NSCA。
我已将其配置如下:

echo "myhost;myservice;1;Message"|/usr/local/nagios/libexec/send_nsca -to 10 -d ';' -c /etc/send_nsca.cfg -H localhost

它运行完美。

所以我的问题是,Nagios 或 NSCA 中是否有办法计算被动检查?
即 Nagios 收到警报的次数myservice注意myhost
:自定义脚本永远不会为服务发送“OK”

答案1

您可以nsca通过在 nsca.cfg 中设置来配置(守护进程)以将调试输出到 syslog debug = 1。确保调试选项不会在配置文件中以不同的值多次出现,否则它可能会被覆盖。我遇到过这种情况 :)。

nsca.cfg:

# LOG FACILITY
# The syslog facility that should be used for logging purposes.

log_facility=daemon

# DEBUGGING OPTION
# This option determines whether or not debugging
# messages are logged to the syslog facility. 
# Values: 0 = debugging off, 1 = debugging on

debug=1

CentOS 7 上 /var/log/messages 中的示例输出:

Sep 23 10:53:14 centos nsca[4504]: Starting up daemon
Sep 23 10:53:19 centos nsca[4504]: Handling the connection...
Sep 23 10:53:19 centos nsca[4504]: Time difference in packet: 0 seconds for host myhost
Sep 23 10:53:19 centos nsca[4504]: SERVICE CHECK -> Host Name: 'myhost', Service Description: 'myservice', Return Code: '1', Output: 'Message'
Sep 23 10:53:19 centos nsca[4504]: Attempting to write to nagios command pipe
Sep 23 10:53:19 centos nsca[4504]: Command file '/var/spool/nagios/cmd/nagios.cmd' does not exist, attempting to use alternate dump file '/var/spool/nagios/cmd/nsca.dump' for output
Sep 23 10:53:19 centos nsca[4504]: End of connection...

下一步是处理日志以获取所需的信息/数字。有很多方法可以做到这一点...

按照您的要求举个例子: Nagios 收到针对我的主机上的我的服务的警报的次数

grep "SERVICE CHECK -> Host Name: 'myhost', Service Description: 'myservice'" /var/log/messages | wc -l
1

在这里您可以看到处理日志显示有 1 个条目符合您的条件。

如果您可以编写脚本或程序,那么一旦您的日志中有了这些数据,您就可能编写出一些能够很好地工作的东西,即使对于许多提交被动检查的客户端主机来说也是如此。

相关内容