zabbix 监控cpu load

场景

  1. zabbix的cpu load要与系统(linux)上的对应(top);
  2. 服务器的CPU核数不一致;
  3. 监控CPU核数总数/2触发报警;

思路

  1. 要动态获取zabbix-agent的core;
  2. 两个监控项目对比的差异(cpu_load>cpu_num/2)并触发相关报警。

解决办法

方法一

  1. 在各agent端配置自定义key,并在zabbix-server上设置相关触发器;

方法二

  1. zabbix-server从触发器入手,直接动态获取;

方法一固然可行,但是在服务器数量庞大的基础下,虽然通过ansible等之类的工具把自定义key推送过去后再配置触发器,这样是不是有点“笨拙”?能不能从zabbix-server现有的key中寻找另一条路呢?答案当然是可以的!

关键的两个key

  • system.cpu.load[all,avg1]

    • #1分钟的所有核数负载值
  • system.cpu.num

    • 系统总核数

自定义触发器可参考触发器表达式,通过对自定义触发器的了解,就可以进行配置相关操作!

展示效果

{Template OS Linux-18:system.cpu.load[all,avg1].min(5m)}>{Template OS Linux-18:system.cpu.num.last()}/2

最近5分钟的负载大于一半的核数就触发报警