汇总来自Zabbix的商品数据?

时间:2015-03-26 11:20:01

标签: triggers zabbix

我想让Zabbix监视不同的项目(在同一主机上,或在不同的主机上),并根据结果分配一个值,然后根据这些值的聚合激活(或不激活)触发器。

例如,让我们设想一个由3个数据库节点组成的集群。 Zabbix通过ping监视它们中的每一个,如果节点可达,则将全局变量增加1。在一轮之后,变量可以具有以下值:

  • 3 => (所有节点都已启动)群集正常
  • 2 => (一个节点已关闭)群集仍在工作但处于降级状态
  • 1 => (两个节点已关闭)群集正在运行但未完成复制
  • 0 => (所有节点都关闭)群集已关闭

如果值为1,则Zabbix将触发WARNING严重性的触发器,如果​​值为0,则触发具有HIGH严重性的触发器。

有没有办法在本机或通过模块执行此操作,而无需使用API​​?谢谢。

2 个答案:

答案 0 :(得分:1)

要将多个项目的数据合并为一个,您可以使用aggregate itemscalculated items。聚合项允许聚合指定主机组中具有相同键的所有项,而计算项允许基于公式对项进行任意操作。

为了拥有两个具有不同严重性的触发器,您可能会发现trigger dependencies很有用。这里,具有较低依赖性的触发器将取决于具有较高依赖性的触发器。

答案 1 :(得分:0)

感谢。听从你的建议,我设法做了我想做的事。以下是步骤:

  1. 创建一个主机组my_DB_cluster,并使用节点的IP地址填充它;
  2. 创建一个新模板my_template并将其添加到主机组my_DB_cluster;
  3. 在my_template中,使用键grpsum [my_DB_cluster,icmpping,last,0]创建一个新项目;
  4. 创建一个新的值映射并将其与项目的结果相关联,以便获取消息(“群集已关闭”)而不是简单值(0);
  5. 在my_template中,在关键grpsum [my_DB_cluster,icmpping,last,0]上创建具有不同严重性的触发器。