如何使用Zabbix 2.2 JSON API确定主机状态?

时间:2013-11-14 03:51:03

标签: json zabbix

我不得不修改一个显示某些主机的一般可用性或状态的Zabbix红绿灯网页。

更新是因为我从1.8升级到2.2版本。不再使用状态字段。

根据我在网上和zabbix网站上阅读的内容,确定可用性的一般方法现在是使用agent.ping和agent.ping.nodata触发器。

我如何在实践中实现这一点?

https://www.zabbix.com/documentation/2.2/manual/api/reference/trigger/get

1 个答案:

答案 0 :(得分:1)

自从你提出这个问题以来已经有一段时间了,不过有人可能会发现我的回复很有用,我希望:)

您可以考虑检查主机对象,其中反映了接口的状态(Zabbix代理,SNMP,IPMI,JMX)。

https://www.zabbix.com/documentation/2.2/manual/api/reference/host/object

然而,这有缺点。可以报​​告特定界面" down"由于许多原因(凭据已更改,防火墙已更改,守护程序已死亡等)。这就是我选择这种方法的原因:

  • 有一个经常打牌的项目
  • 有一个项目定期提取数据(在我的案例中是Zabbix Agent或SNMP)
  • 有一个触发器用于" ping失败",另一个用于" Zabbix代理失败" (或SNMP失败)。那就是你使用nodata()的地方。为其分配中等严重程度。
  • 还有一个触发器,用于检查ping zabbix代理失败(具有高严重性) - 这是我的死主机检测。它会升级7x24。
  • 可选:定义触发器的依赖关系,如果ping和& snmp / Zabbix失败
  • 将所有这些放入一个模板并为其分配相应的主机

现在你可以依靠"主人死了"触发(无论你是否ping& snmp / zabbix / jmx /等等,它总是可用的) - 这比默认的"接口工作更有意义"来自主机对象的状态字段。