智享教程网
白蓝主题五 · 清爽阅读
首页  > 日常经验

Zabbix网络告警配置实战经验分享

公司刚上完一套Zabbix监控系统,最开始只是看着服务器CPU、内存这些基础指标,后来业务一多,网络设备也开始出状况。有次半夜交换机端口异常,没人及时发现,导致整个办公网断了快一个小时。从那以后,老板下了死命令:必须把网络告警做起来。

先搞清楚你要监控什么

不是所有网络问题都靠一个模板解决。比如交换机端口宕掉和路由器CPU飙高,触发的条件完全不同。我们先列了个清单:核心交换机端口状态、防火墙连接数、AP离线、链路延迟异常。每一项对应的监控方式都不一样。

用SNMP抓取网络设备数据

大多数网络设备支持SNMP,这是获取端口状态、流量、温度等信息的关键。在Zabbix里添加设备时,协议选SNMPv2,填写好IP和团体名(community string)就行。比如我们华为交换机的配置

SNMP community: public_zabbix
SNMP version: 2c

添加完设备后,关联上“Template Module Network Devices by SNMP”模板,基本的端口状态、入出流量就自动采集了。

自定义触发器判断网络异常

默认模板给的触发器太宽泛,得自己动手改。比如要监控某个关键端口是否UP,可以新建触发器:

名称:交换机Gi0/1端口宕掉
表达式:{#SNMPVALUE} != 1
监控项:snmp[ifOperStatus.<port_oid>]
严重性:高

这里1代表up,2代表down。一旦变成2,立刻发告警。

设置告警通知渠道

光在界面上亮红是没用的,得让人知道。我们用了企业微信机器人,把告警推送到运维群。在Zabbix的“报警媒介”里添加Webhook,填入企微机器人的webhook地址:

名称:企业微信告警
类型:Webhook
URL:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx-xxxx

然后写个简单的消息模板,让内容更清晰:

{
  "msgtype": "text",
  "text": {
    "content": "【Zabbix告警】\n主机:{HOST.NAME}\n问题:{TRIGGER.NAME}\n时间:{EVENT.DATE} {EVENT.TIME}"
  }
}

避免误报的小技巧

刚配完那几天,端口闪断一下就告警,群里刷屏。后来加了触发条件的时间阈值——连续3分钟down才告警。这样临时插拔网线或者协商过程就不会误报。

还有一个坑是设备重启期间,大量接口同时down,一下子几十条告警。我们在触发器里加了抑制规则:如果“设备不可达”触发,其他接口类告警暂时屏蔽10分钟。

测试不能少

配置完别急着收工。拔根网线试试,看能不能收到消息;再插回去,确认恢复通知也正常。我们还特意挑了晚上八点拔了测试交换机的线,结果十分钟没人反应——才发现值班同事把群消息免提了。最后逼着IT统一设置了紧急告警铃声。

现在只要网络有点风吹草动,手机马上就响。虽然有时候觉得烦,但真出了事,能第一时间响应,老板也不再半夜打电话骂人了。