如何使用 zabbix 检查每个 CPU 的进程数?

如何使用 zabbix 检查每个 CPU 的进程数?

默认情况下,zabbix 能够检查机器上的进程总数以及触发器和错误(如果超过 300)。

显然,这对于较大的机器来说效果不佳。我确实有一台有 32 个代码的服务器,显然 300 个进程对于这台机器来说不算什么。

我确实想改变此规则,以便在每个 CPU 的进程数大于 300 时触发警告。

该触发器位于 Linux 模板内,名为“{HOST.NAME} 上的进程过多”,默认值为"{Template OS Linux:proc.num[].avg(5m)}>300"

我尝试写一些类似的内容{Template OS Linux:proc.num[].avg(5m)}/{Template OS Linux:system.cpu.num}>300,但似乎 zabbix (2.2) 不喜欢这种触发表达式。

Incorrect trigger expression. Check expression part starting from "/{Template OS Linux:system.cpu.num}>300".

重新配置此检查的正确方法是什么?

答案1

触发器表达式中项目引用的正确语法是:

{host:item.func()}

在您的特定情况下,func()之后的部分缺失system.cpu.num,因此正确的表达方式应为:

{Template OS Linux:proc.num[].avg(5m)}/{Template OS Linux:system.cpu.num.last()}>300

请注意,如果您不习惯手动编辑触发表达式,您可以使用表达式右侧的“添加”按钮,它会弹出一个简单的向导:

在此处输入图片描述

相关内容