从 Zabbix 聚合项目数据?
Aggregate item data from Zabbix?
我想让 Zabbix 监控不同的项目(在同一台主机上,或在不同的主机上)并根据结果分配一个值,然后让它根据这些聚合触发(或不触发)触发器值。
例如,让我们想象一个由 3 个数据库节点组成的集群。 Zabbix 通过 ping 监控它们中的每一个,如果节点可访问,则将全局变量增加 1。一轮后,变量可能有以下值:
- 3 =>(所有节点都已启动)集群正常
- 2 =>(一个节点已关闭)集群仍在工作但处于降级状态
- 1 =>(两个节点已关闭)集群正在运行但未完成复制
- 0 =>(所有节点都已关闭)集群已关闭
然后 Zabbix 在值为 1 时触发严重性为 WARNING 的触发器,在值为 0 时触发严重性为 HIGH 的触发器。
有没有一种方法可以在本机或通过模块执行此操作,而无需使用 API?谢谢。
要将多个项目的数据聚合为一个,您可以使用 aggregate items or calculated items。聚合项允许聚合指定主机组中具有相同键的所有项,而计算项允许基于公式对项进行任意操作。
为了让两个触发器具有不同的严重性,您可能会发现 trigger dependencies 很有用。在这里,具有较低依赖性的触发器将依赖于具有较高依赖性的触发器。
谢谢。按照你的建议,我设法做了我想做的事。以下是步骤:
- 创建主机组 my_DB_cluster 并使用节点的 IP 地址填充它;
- 创建新模板my_template并将其添加到主机组my_DB_cluster;
- 在 my_template 中,使用键 grpsum[my_DB_cluster,icmpping,last,0] 创建一个新项目;
- 创建一个新的值映射并将其关联到项目的结果,以获取消息 ("cluster is down") 而不是简单的值 (0);
- 在 my_template 中,在键 grpsum[my_DB_cluster,icmpping,last,0].
上创建具有不同严重性的触发器
我想让 Zabbix 监控不同的项目(在同一台主机上,或在不同的主机上)并根据结果分配一个值,然后让它根据这些聚合触发(或不触发)触发器值。
例如,让我们想象一个由 3 个数据库节点组成的集群。 Zabbix 通过 ping 监控它们中的每一个,如果节点可访问,则将全局变量增加 1。一轮后,变量可能有以下值:
- 3 =>(所有节点都已启动)集群正常
- 2 =>(一个节点已关闭)集群仍在工作但处于降级状态
- 1 =>(两个节点已关闭)集群正在运行但未完成复制
- 0 =>(所有节点都已关闭)集群已关闭
然后 Zabbix 在值为 1 时触发严重性为 WARNING 的触发器,在值为 0 时触发严重性为 HIGH 的触发器。
有没有一种方法可以在本机或通过模块执行此操作,而无需使用 API?谢谢。
要将多个项目的数据聚合为一个,您可以使用 aggregate items or calculated items。聚合项允许聚合指定主机组中具有相同键的所有项,而计算项允许基于公式对项进行任意操作。
为了让两个触发器具有不同的严重性,您可能会发现 trigger dependencies 很有用。在这里,具有较低依赖性的触发器将依赖于具有较高依赖性的触发器。
谢谢。按照你的建议,我设法做了我想做的事。以下是步骤:
- 创建主机组 my_DB_cluster 并使用节点的 IP 地址填充它;
- 创建新模板my_template并将其添加到主机组my_DB_cluster;
- 在 my_template 中,使用键 grpsum[my_DB_cluster,icmpping,last,0] 创建一个新项目;
- 创建一个新的值映射并将其关联到项目的结果,以获取消息 ("cluster is down") 而不是简单的值 (0);
- 在 my_template 中,在键 grpsum[my_DB_cluster,icmpping,last,0]. 上创建具有不同严重性的触发器