默认情况下,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
请注意,如果您不习惯手动编辑触发表达式,您可以使用表达式右侧的“添加”按钮,它会弹出一个简单的向导: