以编程方式查询Nagios状态

我最近购买了一个不错的7×11 LED显示屏,我想(除其他外)显示我的nagios状态。 为此,我需要查询我的Nagios安装的状态。

从一个远程的Nagios服务器(比如说一个perl脚本)获取一个状态摘要(例如,非正常服务的数量)是什么合适的方式?

我维护一个非常大的nagios安装,可以说绝对最好的方法是通过“ livestatus ”事件代理:

http://mathias-kettner.de/checkmk_livestatus.html

Livestatus通过本地或TCP套接字提供对Nagios状态的即时访问,并在监视服务器上引入几乎零的额外CPU负载(当然,它确实有内存占用)。 与xinetd / unixcat的简单集成允许通过networking查询。 输出是三种格式之一:CSV,JSON和Python。 许多configuration选项可用,并且对于生产使用来说足够稳定。 文档非常好。

此外,livestatus还支持其他的nagios插件,例如“ MK Multisite ”,它将来自多个nagios安装的结果集合到一个GUI中,而无需使用NSCA或被动服务检查结果,这需要在工作人员上维护nagiosconfiguration和主服务器。

据我所知,没有nagios.com支持查询nagios状态的API。 有很多不同的附加组件可以让你做到这一点。 有人在这个问题上讨论。

https://stackoverflow.com/questions/7768215/is-there-a-way-to-extract-data-from-nagios-as-if-it-was-a-web-service

你可以直接查询cgi,并“屏幕抓取”返回的html,但这不是一个非常强大的解决scheme。 我用这个版本的api服务器弄了一点,但是没有把它放进去。

https://github.com/xb95/nagios-api