如何使用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)不喜欢这个触发器expression式。

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

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

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

 {host:item.func()} 

在你的情况下, func()部分在system.cpu.num之后缺less,所以正确的expression式是:

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

请注意,如果您不熟悉手动编辑触发器expression式,则可以使用expression式右侧的“添加”button来创build一个简单的向导:

在这里输入图像说明