在这篇文章中,我将分享如何基于 Zabbix 自行编写模板,完成对华为核心交换机、深信服防火墙以及群晖 NAS(Synology)的监控与自动发现配置。所有内容均基于我在实际企业网络环境中的部署实践。
一、项目背景
在每个厂家的MIB库的对应zabbix模板库中大多数版本不一致的情况下,MIB库中OID不完善的华为交换机,不完全适配的深信服防火墙,以及属性更复杂的群晖 NAS,默认模板已经无法满足大量日常监控需求。
因此,我选择通过 SNMP + Low-level Discovery 自行编写监控项和自动发现规则,整合成自己的一套 Zabbix Template,用于企业网络、服务器、打印机、监控等硬件管理和日常告警。
二、环境前提
系统:Zabbix Server 7.0 LTS
华为核心交换机:CE6850系列、S5731S-H24T4XC-A等
深信服防火墙:AF/EF 系列(SNMPv2c 配好示例用户、IP服务器地址)
群晖NAS:Synology DS 系列(SNMPv2c 已启用)
三、华为核心交换机监控
监控项:
接口 up/down 状态 (OID: .1.3.6.1.2.1.2.2.1.8)
设备运行时长(OID:1.3.6.1.2.1.1.3.0)
接口名称:(OID:1.3.6.1.2.1.2.2.1.2.x)
上下行网卡流量速度:(OID:1.3.6.1.2.1.2.2.1.16.x(下行),1.3.6.1.2.1.2.2.1.10.x(上行))
CPU使用率:(OID:1.3.6.1.4.1.2011.6.3.4.1.3.0.0.0)
接口温度:(OID:1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11.x)
内存使用率:采用内存总量(1.3.6.1.4.1.2011.5.25.31.1.1.1.1.9.67108873)/内存已使用(1.3.6.1.4.1.2011.5.25.31.1.1.1.1.10.67108873)* 100%
电源:(OID:1.3.6.1.4.1.2011.5.25.31.1.1.18.1.2)
风扇:(OID:1.3.6.1.4.1.2011.5.25.31.1.1.10.1.1)
自动发现规则 LLD:
配置使用 SNMP discovery 根据 ifDescr 或 ifName 进行接口自动发现,以及电源槽位和风扇槽位、传感器自动发现
监控项原型
在监控项原型中定义自动发现所需要的监控模板




实现技巧:
通过预处理的javascript脚本
var status = value;
if (status == "1") {
return "UP";
} else if (status == "2") {
return "DOWN";
} else {
return "testing";
}
来判断1为Up,2为down,输出为文本格式,同步使用 ifAlias 定名接口
四、深信服防火墙监控
监控项:
当前已建连接数 (OID: .1.3.6.1.2.1.1.10.0)
网口状态,每秒包数/流量
日志判断实现 (Zabbix trapper + syslog)

LLD 规则:
根据网口名称动态发现

分别生成 rx/tx 监控项
实现技巧:
使用自定义 user macro 调整 trap OID 名称
互相匹配深信服应用级别
五、群晖 NAS (Synology) 监控
监控项:
硬盘读写流量 (storageIO)
卷入充度 (storageIOLA*)
系统工作时间 uptime (via Timeticks)
自动发现:
根据 storageIODevice LLD 编写规则

给每个硬盘生成相关的读写监控项


实现技巧:
使用预处理中的每秒更改 (speed per second) 转换成系统读/写速度

使用相同规则生成统一图表 (Graph Prototype)
六、结论
通过SNMP + LLD 自定义编写模板,我们可以灵活地对不同类型的网络设备进行统一监控。目前,已培养成公司内部新项目的默认模板规范,同时为日常系统维护提供了有效保障。
zabbix告警的内置函数字段模板为:如下所示