我有一些由 Zabbix 服务器监控的基础设施(服务器、交换机等),设置为在出现问题时发出警报;到目前为止,一切都很好。但是如果 Zabbix 服务器本身(或任何底层基础设施)遇到问题怎么办?
一个想法是发布某种心跳,可以由外部系统监控。我正在考虑使用 Zabbix API(可能使用 py-zabbix)通过 http 公开它,并使用诸如monitor.us之类的东西对其进行监控。
在我冒险之前,我不禁想知道是否已经存在一些简单的东西来解决这个问题?或者这甚至是一个好方法?与自定义 Python 脚本相比,monit 会是更好的方法吗?(不确定这是否通过了“简单性”测试)......
所以这就是我最终做的事情:
有一个意外的小问题:即使 Zabbix 服务器关闭,Zabbix API 仍然响应,并且无法询问服务器的状态——这是我想要监控的主要内容。值得庆幸的是,存在允许此类服务器状态查询的补丁。
这是查询一组失败的 Zabbix 触发器的代码(改编自pyzabbix 附带的示例)。如果您需要完整监视器的代码,请在评论中提问,我将在 github 上发布。
外部心跳是要走的路。
我不知道有任何此类工具,我有自己的用于我使用的监控系统。只要确保它是心跳而不是失败报告。例如。您总是报告一切正常,当监控系统长时间没有收到您的心跳时,它应该让您知道。