以编程方式查询 Nagios 状态

以编程方式查询 Nagios 状态

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

通过 perl 脚本等从远程 Nagios 服务器获取状态摘要(例如非 OK 服务的数量)的适当方法是什么?

答案1

我维护着一个非常大的 nagios 安装,可以说,最好的方法是通过“直播状态“事件代理:

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

Livestatus 可通过本地或 TCP 套接字即时访问 nagios 状态,几乎不会给监控服务器带来任何额外的 CPU 负载(但当然会占用内存)。与 xinetd/unixcat 的简单集成允许通过网络进行查询。输出格式有以下三种:CSV、JSON 和 Python。有许多配置选项可用,并且足够稳定,可用于生产用途。文档非常好。

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

答案2

据我所知,nagios.com 没有支持查询 nagios 状态的 API。有相当多的附加组件可以让你做到这一点。本问题中讨论了其中一些。

https://stackoverflow.com/questions/7768215/是否有办法从nagios-as-if-it-was-a-web-service提取数据

您可以直接查询 cgi 并“屏幕抓取”返回的 html,但这不是一个非常强大的解决方案。我曾对这个版本的 api 服务器进行了一些调整,但尚未投入生产。

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

相关内容