1、环境介绍

zabbix server 版本: 6.4
H3C网络设备型号
H3C S5135S-48T4X-EI-Q(带外交换机)
H3C S6520X-54QC-EI (接入交换机)
H3C S6805-54HF(汇聚交换机)
F5000-AI160 (防火墙)

2、监控内容

CPU、内存、温度、风扇、电源、端口物理状态(up/down)、端口速率、管理ip可达性、SNMP可达性、uptime信息、设备信息(型号、微码版本)
这里做3个提醒:
1、由于咨询H3C原厂,H3C没有zabbix网络设备的监控模版,只发一个MIB库让我们去查询相应的OID,得根据这个OID我们自己做一个监控模版才行。
2、Zabbix的web服务端上自带了网络设备的模版,这里我测试了一下能正常获取H3C设备的接口信息。
说明关于接口的OID,各大品牌是通用的,而其他的电源、风扇、温度信息、CPU、内存等信息是品牌私有的,OID不一定通用,大家在监控网络设备的时候,监控获取的数据一定要去验证一下。
3、即使同一品牌,不同型号的设备OID也有可能不同。

3、H3C官网查询OID

操作步骤:
H3C官网MIB库地址https://www.h3c.com/cn/BizPortal/QueryMIB/cn_index.aspx
snmpwalk工具下载链接http://www.net-snmp.org/download.html

4、H3C网络设备SNMP配置

登录H3C网络设备执行命令:

snmp-agent
snmp-agent community read simple 团体名
snmp-agent community write simple 团体名
snmp-agent sys-info version v2c
undo snmp-agent sys-info version v3

5、zabbix监控带外交换机

5.1 克隆监控模版

操作步骤:

zabbix首页-Data collection-Templates-Template groups选中Templates/Network devices-选择HP Comware HH3C by SNMP-Full clone完全克隆-add新建
1.1 克隆模版
1.2 添加模版

5.2 添加监控主机

操作步骤:

zabbix首页-Monitoring-Hosts-Create host
1.3添加监控主机

5.3 调整模版的自动发现规则

操作步骤:

zabbix首页-Data collection-Templates-选择H3C S5135S-48T4X-EI-Q-Discovery rules

这里我只保留设备SN、微码版本信息 还有设备接口信息的自动发现规则,其他的我都删除了。原因正如上面的提醒,这个模版的自动发现规则获取不到H3C交换机关于电源、风扇的信息,而且我发现CPU、内存获取的数据也不对。
原因推测:每家品牌部分的OID是私有的
1.4 自动发现规则只保留 设备信息、接口信息
举例:电源信息获取不到
1.5 电源信息获取不到
然后这里关于接口的监控项,我只选择保留接口速率、接口状态(UP、Down) ,其他的我觉得没必要,所以我就禁用了,当然大家也可以保留,可以自行选择监控端口的数据。
1.6 接口的监控项 只保留 接口速率、接口状态

5.4 添加自动发现规则、监控项原型、告警触发器

添加自动发现规则操作步骤:

zabbix首页-Data collection-Templates-选择H3C S6520X-54QC-EI-Discovery rules-Create EI-Discovery rules

添加监控项操作步骤:

zabbix首页-Data collection-Templates-选择H3C S6520X-54QC-EI-Discovery rules-Item prototypes-create-Item prototypes

添加告警触发器操作步骤:

zabbix首页-Data collection-Templates-选择H3C S6520X-54QC-EI-Discovery rules-Trigger prototypes-create Trigger prototypes

5.4.1 添加内存监控

官网内存空闲率OID查询
1.7 官网内存空闲率OID查询
内存空闲率OID结果验证

交换机验证:display memory
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip 1.3.6.1.4.1.25506.8.35.18.4.10.1.15

1.8 内存空闲率结果验证
添加内存自动发现规则

Name:内存
Key:memory
SNMP OID:discovery[{#MEMORY},1.3.6.1.4.1.25506.8.35.18.4.10.1.15]

1.9 添加内存自动发现规则
添加内存空闲率监控项

Nmae:内存空闲率
Key:memoryfree[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.15.{#SNMPINDEX}

1.10 添加内存空闲率监控项原型
查看内存空闲率监控数据,已经成功获取
1.11 查看内存空闲率监控数据
添加内存告警触发器
1.12 添加告警触发器条件
一共添加2个
1.13 添加内存告警触发器(故障表达+恢复表达)
1.14 添加2个级别

5.4.2 添加CPU监控

官网CPU使用率OID查询
1.15 官网cpu使用率OID查询
CPU使用率OID结果验证

交换机验证:display cpu-usage
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.8.35.18.4.10.1.3

1.16 CPU使用率结果验证
添加CPU自动发现规则

Nmae:CPU
Key:cpu
SNMP OID:discovery[{#CPU},1.3.6.1.4.1.25506.8.35.18.4.10.1.3]

1.17 添加CPU自动发现规则
添加CPU使用率监控项

Nmae:CPU使用率
Key:cpuusage[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.3.{#SNMPINDEX}

1.18 添加CPU使用率监控项原型
查看CPU使用率监控数据,已经成功获取
1.19 查看CPU使用率监控数据
添加CPU使用率告警触发器
1.20 添加2个级别

5.4.3 添加温度监控

官网温度数据OID查询
1.21 官网温度情况OID查询
温度数据OID结果验证 #65535是无效数据的意思。

交换机验证:display environment
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  snmpwalk -v 2c -c  1.3.6.1.4.1.25506.2.6.1.1.1.1.12
另外一个我为什么能确定220,221,222是温度的数据,除了通过交换机命令行查询出结果
是一样的之外,我们还可以通过另外一个OID进行确认  
1.3.6.1.2.1.47.1.1.1.1.7  这个OID是查询设备所有的接口物理实体名(端口+电源+型号+风扇.........)

1.23 确定温度模块的OID
1.22 温度情况结果验证
添加温度自动发现规则

Nmae:温度
Key:environment
SNMP OID:discovery[{#ENVIRONMENT},1.3.6.1.4.1.25506.2.6.1.1.1.1.12]

1.24 添加温度自动发现规则
添加过滤规则

Label Macro:{#SNMPINDEX}
matches
Regular expression:^(22[0-2])$

1.25 温度规则过滤
添加温度数据监控项

Nmae:温度{#SNMPINDEX}数据
Key:environmentdata[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.2.6.1.1.1.1.12.{#SNMPINDEX}

1.26 添加温度情况监控项原型
查看温度情况监控数据,已经成功获取
1.27 查看温度情况监控数据
添加温度告警触发器

注意:这里的触发器就不能在自动发现规则里面去添加了,因为我的温度传感模块有3个数据,每个数据的告警阈值在交换机侧查询出来的结果也不一样。所以我们得根据交换机获取到的监控数据每个单独去配置告警触发器。

操作步骤:

zabbix首页-Monitoring-Hosts-点击刚才添加的交换机-Triggers-Create Triggers
1.28 温度告警添加触发器1
1.29 温度告警添加触发器2
1.30 温度告警添加触发器3
1.31 温度告警添加表达式4
一共要添加2个告警触发器 (另外1个hotspot3就不用添加了,因为交换机上面Warring阈值写的是NA。所以估计这个传感器不重要)
1.32 温度告警触发器添加完成

5.4.4 添加电源监控

官网电源OID查询
1.33 官网电源状态OID查询
电源OID结果验证

交换机验证:display power
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.8.35.9.1.2.1.2

1.34 交换机侧电源查询
1.35 电源状态OID结果验证
添加电源自动发现规则

Nmae:电源
Key:power
SNMP OID:discovery[{#POWER},1.3.6.1.4.1.25506.8.35.9.1.2.1.2]

1.36 添加电源自动发现规则
添加电源状态监控项

Nmae:电源{#SNMPINDEX}状态
Key:powerstatus[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.9.1.2.1.2.{#SNMPINDEX}

1.37 添加电源状态监控项原型
查看电源状态监控数据,已经成功获取
1.38 查看电源状态监控数据
电源监控数据的状态结果说明
1.39 电源OID结果说明
添加电源监控告警触发器
1.40 添加电源状态告警触发器
电源告警触发器添加完成
1.41 电源告警添加触发器完成

5.4.5 添加风扇监控

该型号交换机没有风扇
1.42 该型号交换机没有风扇

5.4.6 查看最终监控效果

zabbix首页-Monitoring-Latest data 查看
1.43 最终监控效果
1.44 最终监控效果

6、zabbix监控接入交换机

6.1 克隆监控模版

这里我们直接克隆带外交换机监控模版,名称改为接入交换机的型号就行。
操作步骤:

zabbix首页-Data collection-Templates-Template groups选中Templates/Network devices-选择H3C S5135S-48T4X-EI-Q-Full clone完全克隆-add新建
2.1 克隆带外交换机模版

6.2 添加监控主机

操作步骤:

zabbix首页-Monitoring-Hosts-Create host
2.2 添加接入交换机的监控主机

6.3 调整模版的自动发现规则

操作步骤:

zabbix首页-Data collection-Templates-选择H3C S6520X-54QC-EI-Discovery rules

6.3.1 修改内存、CPU监控项(可选)

我们先看一下获取的监控数据,因为是2台交换机做的堆叠,所以这里会有2个数据。
2.4 内存空闲率交换机侧验证
2.5 内存空闲率监控数据
如果你认为从获取到的监控数据不知道是那台交换机的,那么可以在该监控项的名字上添加一个宏 {#SNMPINDEX}
2.6 修改内存监控型名称
2.3 内存空闲率OID验证
然后再观察一下数据
2.7 监控项名称添加宏后的效果
CPU同理,这里就不做演示了

6.3.2 修改温度监控(必须)

如上面的提醒,即使是同一品牌下的设备,它们的硬件OID也不一定一致。一定要通过snmpwalk去验证数据,比如我们带外交换机的温度监控,它的oid我的过滤规则是^(22[0-2])$ 但是现在这台接入交换机按这样过滤是不对的,我们先通过snmpwalk验证一下OID。

交换机验证:display environment
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.2.1.47.1.1.1.1.7   (查设备的硬件信息)
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.2.6.1.1.1.1.12 (查设备的温度信息)

2.8 接入交换机温度OID验证
2.9 接入交换机温度模块OID验证
我们通过snmpwalk -v 2c -c 团体名 ip 1.3.6.1.2.1.47.1.1.1.1.7 (查设备的硬件信息) 的结果
可以判断220、240就是我们在交换机上查询的2个温度模块,那么我的监控项也应该围绕这2个去进行配置
所以我的oid过滤规则,就不能按照带外交换机的^(22[0-2])$ 进行过滤。应该改成^(220|240)$
2.11 接入交换机温度OID过滤规则
查看温度监控数据,已经成功获取
2.22 温度监控项最终数据
添加告警触发器的过程这里不演示了,跟带外交换机的区别就是要根据接入交换机的阈值进行调整,也就是大于64即触发告警。
2.10 接入交换机温度告警阈值
2.12 接入交换机温度触发器

6.3.3 添加风扇监控(必须)

官网风扇OID查询
2.13 H3C官网风扇OID查询
风扇OID结果验证

交换机验证:display fan
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.8.35.9.1.1.1.2

2.15 接入交换机风扇OID验证
添加风扇自动发现规则

Nmae:风扇
Key:fan
SNMP OID:discovery[{#FAN},1.3.6.1.4.1.25506.8.35.9.1.1.1.2]

2.16 添加风扇自动发现规则
添加风扇状态监控项

Nmae:风扇{#SNMPINDEX}状态
Key:fanstatus[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.9.1.1.1.2.{#SNMPINDEX}

2.18 添加风扇监控项原型
查看风扇状态监控数据,已经成功获取
2.17 获取风扇状态数据
风扇监控数据的状态结果说明
2.14 风扇状态结果
添加风扇监控告警触发器
2.19 添加风扇告警触发器1
2.20 添加风扇告警触发器2
风扇告警触发器添加完成
2.21 添加风扇告警触发器3

6.3.4 查看最终监控效果

2.23 查看最终数据1
2.24 查看最终数据2

7、zabbix监控汇聚交换机

7.1 克隆监控模版

这里直接克隆接入交换机的模版,过程不演示了。

7.2 添加监控主机

跟上面的一样,过程不演示了。

7.3 调整模版的自动发现规则

CPU、内存、风扇、电源这些都不用调整了,只用调整一下温度的OID过滤规则

7.3.1 修改温度监控(必须)

我们先通过snmpwalk验证一下OID

交换机验证:display environment
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.2.1.47.1.1.1.1.7   (查设备的硬件信息)
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.2.6.1.1.1.1.12 (查设备的温度信息)

3.1 汇聚交换机硬件信息oid查询
3.2 汇聚交换机硬件信息oid查询
3.5 温度结果oid验证
3.6 温度结果oid验证2
同理,汇聚交换机温度发现规则的oid过滤规则也要进行更改,^(5[1-5]|45[1-5])$
3.3 汇聚交换机温度过滤规则
查看温度监控数据,已经成功获取
3.7 最终温度获取到的数据
然后自行添加告警触发器 #hotspot5 这个就不添加了,应该看后面阈值都是NA,估计这个传感器不重要吧。
3.8 汇聚交换机温度阈值
3.9 添加温度触发器

7.3.2 查看最终监控效果

3.11 最终监控效果
3.10 最终监控效果

8、zabbix监控防火墙

8.1 克隆监控模版

跟上面的一样,过程不演示了。

8.2 添加监控主机

跟上面的一样,过程不演示了。

8.3 调整模版的自动发现规则

CPU、风扇、电源这些都不用调整了,只用调整一下内存、温度的OID过滤规则

8.3.1 修改内存监控(必须)

我们先通过snmpwalk验证一下OID
4.1 内存oid获取不到数据
这个OID是我们带外、接入、汇聚交换机使用的,它是拿来查询内存空闲率的。但是这个OID在防火墙设备上用不了,所以我们得去官网上面再查询一下
4.2 内存OID官网查询
已使用内存OID验证

防火墙验证:display memory
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.8.35.18.4.10.1.10

4.1 内存oid验证
添加内存自动发现规则

Nmae:内存
Key:memory
SNMP OID:discovery[{#MEMORY},1.3.6.1.4.1.25506.8.35.18.4.10.1.10]

4.3 创建内存自动发现规则
添加内存使用率监控项

Nmae:内存使用率
Key:memoryused[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.10.{#SNMPINDEX}

查看内存使用率监控数据,已经成功获取
4.4 内存获取的数据
添加内存告警触发器
4.5 内存触发器创建完成

8.3.2 修改温度监控(必须)

我们先通过snmpwalk验证一下OID

防火墙验证:display environment
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.2.1.47.1.1.1.1.7   (查设备的硬件信息)
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip  1.3.6.1.4.1.25506.2.6.1.1.1.1.12 (查设备的温度信息)

4.6 防火墙温度传感器oid确认
4.7 防火墙温度传感器oid确认2
防火墙的温度发现规则的oid过滤规则也要进行更改,^(4[4-9])$
4.8 温度过滤规则
查看温度监控数据,已经成功获取
4.9 查看温度数据
然后添加告警触发器
4.10 创建温度触发器

8.3.3 添加vrrp监控(可选)

2、vrrp状态oid查询
1、防火墙vrrp状态查询

8.3.4 查看最终监控效果

4.12 最终监控效果
4.11 最终监控效果

9、总结

1、配置任何监控,一定要验证oid的结果是否和设备上命令执行的结果完全匹配。
2、为什么要用自动发现规则,因为设备上的硬件信息太多了,如果按单一监控项去添加就太繁琐了。
3、自动发现规则oid和监控项oid是有区别的,一个是获取设备的接口名称,另外一个是获取接口状态
4、配置的监控并不是更新时间越快越好,保留的数据也不是越久越好,要考虑你zabbix-server的性能,我这台服务端就是个虚拟机,上面一共监控了一千多个设备,包括服务器、OS、交换机、ap、以及监控摄像头等等。
5、监控项要灵活调整,如果你不熟悉网络设备之间的链路是怎么互联的,其实也可以加上交换机堆叠的状态、上行下行链路以及防火墙的HA主备链路、VRRP状态等等监控项。