Zabbix自定义触发器,服务器负载过高告警

服务器负载过高如果没能及时发现,轻则服务变慢,重则直接宕机。
Zabbix 自带的模板往往只监控了 CPU 和内存,对系统负载的告警并不细致。
这篇文章会带着你从零开始,在 Zabbix 里创建一个自定义触发器,专门盯着服务器负载,一旦超过你设定的值就立刻告警。
整个过程包括准备监控项、编写触发器表达式、关联到主机以及模拟测试,跟着做就能完成。

先确认 Zabbix 版本和主机监控状态

在动手之前,需要确保你的 Zabbix 环境已经正常运行,并且目标服务器已经添加了 Zabbix Agent。
打开 Zabbix Web 界面,进入“配置” -> “主机”,确认你要监控的服务器状态是“已启用”且“可用”显示为绿色。

如果还没有安装 Agent,可以在被监控服务器上执行以下命令安装(以 CentOS 7 为例):

yum install -y zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent

然后在 Zabbix Web 里添加主机,填写 Agent 的 IP 和端口(默认 10050)。
这一步是基础,如果主机不可用,后面的触发器也不会生效。

创建监控项获取系统负载值

Zabbix 本身有内置的键值来获取负载,但为了更灵活,我们可以直接用系统自带的 system.run 或者 Zabbix Agent 的 system.cpu.load 键值。
这里推荐使用内置键值,更稳定。

进入“配置” -> “主机”,找到你的服务器,点击“监控项”,然后点击“创建监控项”。

  • 名称:System load (1 min average per core)(可以自定义,方便识别即可)
  • 键值:system.cpu.load[percpu,avg1]
  • 信息类型:浮点数
  • 单位:留空
  • 更新间隔:30s(根据需求调整,负载变化快可以设短一点)

点击“添加”保存。
这个监控项会每 30 秒采集一次最近 1 分钟的平均负载,并且已经除以了 CPU 核心数,所以数值直接反映每核心的负载情况。

等待一两分钟,进入“监测” -> “最新数据”,筛选你的主机和监控项名称,确认有数据产生。
如果显示“不支持”,检查 Zabbix Agent 是否允许该键值,通常默认是允许的。

编写触发器表达式,定义负载过高条件

现在有了监控项,下面创建触发器来定义什么情况算“负载过高”。

进入“配置” -> “主机”,点击“触发器”,然后“创建触发器”。

  • 名称:CPU load is too high on {HOST.NAME}(可以写成中文,例如“服务器负载过高”)
  • 严重性:选择“警告”或“严重”,按需
  • 表达式:点击“添加”,选择刚才创建的监控项,功能选择 last(),运算符选择 >,结果填 2(假设你希望每核心负载超过 2 就告警)

完整的表达式类似:last(/YourHost/system.cpu.load[percpu,avg1])>2

这里的 2 是阈值,表示每核心负载超过 2 就触发。
如果你的服务器是 4 核,总负载超过 8 就会告警。
建议根据实际业务调整,一般每核心负载持续高于 1.5 就算偏高。

点击“添加”保存触发器。

关联触发器并模拟测试告警

触发器创建后会自动关联到当前主机,不需要额外操作。
但我们需要验证它是否能真正触发。

一个简单的方法是手动制造高负载。
登录到被监控服务器,执行一个消耗 CPU 的命令,例如:

stress --cpu 4 --timeout 60s

如果没有 stress 命令,可以先安装:yum install -y stress。
这条命令会启动 4 个进程占满 CPU 60 秒。

与此同时,观察 Zabbix Web 的“监测” -> “仪表板”或“问题”页面。
如果负载超过阈值,应该会看到一条新的告警,严重性为你设置的级别。
你也可以在“监测” -> “最新数据”里查看负载值是否超过了阈值。

如果一切正常,告警会出现。
如果没出现,检查触发器的表达式是否正确,以及监控项是否在持续采集数据。

常见避坑点:阈值与恢复表达式

很多新手会忽略负载阈值的单位。
使用 system.cpu.load[percpu,avg1] 时,数值已经是每核心负载,所以阈值不要设成总负载值。
比如 8 核服务器,每核心负载 1 已经表示总负载 8,所以阈值设 1 或 1.5 更合理。

另外,触发器可以添加恢复表达式。
默认情况下,当负载降回阈值以下,告警会自动恢复。
但如果你希望更精确,可以在触发器里添加恢复表达式,例如 last(/YourHost/system.cpu.load[percpu,avg1])<1.5,这样只有负载降到 1.5 以下才恢复,避免在临界值附近反复告警。

还有一点,如果服务器上运行了 Zabbix Agent 的主动模式,需要确保 system.cpu.load 键值没有被禁用。
可以在 Agent 配置文件里检查 UserParameter 或直接测试 zabbix_agentd -t system.cpu.load[percpu,avg1]。

告警效果验证与后续调整

当触发器成功触发后,你会在 Zabbix 的问题页面看到记录,同时如果配置了邮件、钉钉等媒介,也会收到通知。
建议先观察几天,根据实际业务高峰调整阈值。
如果告警太频繁,可以适当提高阈值或增加触发条件,比如持续 3 次超过阈值才告警,表达式可以写成:min(/YourHost/system.cpu.load[percpu,avg1],3m)>2,表示最近 3 分钟的最小值都大于 2 才触发,避免瞬间抖动误报。

总结一下,Zabbix 自定义触发器并不复杂,核心是选对监控项键值、设好合理的阈值,并用实际负载验证一遍。
这样就能在服务器负载真正过高时及时收到告警,留出处理时间。

分享到:
上一篇
KVM虚拟机CPU内存热扩容,不用关机调整配置
下一篇
Grafana导入服务器监控模板
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意