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新建
5.2 添加监控主机
操作步骤:
zabbix首页-Monitoring-Hosts-Create host
5.3 调整模版的自动发现规则
操作步骤:
zabbix首页-Data collection-Templates-选择H3C S5135S-48T4X-EI-Q-Discovery rules
这里我只保留设备SN、微码版本信息 还有设备接口信息的自动发现规则,其他的我都删除了。原因正如上面的提醒,这个模版的自动发现规则获取不到H3C交换机关于电源、风扇的信息,而且我发现CPU、内存获取的数据也不对。
原因推测:每家品牌部分的OID是私有的
举例:电源信息获取不到
然后这里关于接口的监控项,我只选择保留接口速率、接口状态(UP、Down) ,其他的我觉得没必要,所以我就禁用了,当然大家也可以保留,可以自行选择监控端口的数据。
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查询
内存空闲率OID结果验证
交换机验证:display memory
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip 1.3.6.1.4.1.25506.8.35.18.4.10.1.15
添加内存自动发现规则
Name:内存
Key:memory
SNMP OID:discovery[{#MEMORY},1.3.6.1.4.1.25506.8.35.18.4.10.1.15]
添加内存空闲率监控项
Nmae:内存空闲率
Key:memoryfree[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.15.{#SNMPINDEX}
查看内存空闲率监控数据,已经成功获取
添加内存告警触发器
一共添加2个
5.4.2 添加CPU监控
官网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
添加CPU自动发现规则
Nmae:CPU
Key:cpu
SNMP OID:discovery[{#CPU},1.3.6.1.4.1.25506.8.35.18.4.10.1.3]
添加CPU使用率监控项
Nmae:CPU使用率
Key:cpuusage[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.3.{#SNMPINDEX}
查看CPU使用率监控数据,已经成功获取
添加CPU使用率告警触发器
5.4.3 添加温度监控
官网温度数据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是查询设备所有的接口物理实体名(端口+电源+型号+风扇.........)
添加温度自动发现规则
Nmae:温度
Key:environment
SNMP OID:discovery[{#ENVIRONMENT},1.3.6.1.4.1.25506.2.6.1.1.1.1.12]
添加过滤规则
Label Macro:{#SNMPINDEX}
matches
Regular expression:^(22[0-2])$
添加温度数据监控项
Nmae:温度{#SNMPINDEX}数据
Key:environmentdata[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.2.6.1.1.1.1.12.{#SNMPINDEX}
查看温度情况监控数据,已经成功获取
添加温度告警触发器
注意:这里的触发器就不能在自动发现规则里面去添加了,因为我的温度传感模块有3个数据,每个数据的告警阈值在交换机侧查询出来的结果也不一样。所以我们得根据交换机获取到的监控数据每个单独去配置告警触发器。
操作步骤:
zabbix首页-Monitoring-Hosts-点击刚才添加的交换机-Triggers-Create Triggers
一共要添加2个告警触发器 (另外1个hotspot3就不用添加了,因为交换机上面Warring阈值写的是NA。所以估计这个传感器不重要)
5.4.4 添加电源监控
官网电源OID查询
电源OID结果验证
交换机验证:display power
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip 1.3.6.1.4.1.25506.8.35.9.1.2.1.2
添加电源自动发现规则
Nmae:电源
Key:power
SNMP OID:discovery[{#POWER},1.3.6.1.4.1.25506.8.35.9.1.2.1.2]
添加电源状态监控项
Nmae:电源{#SNMPINDEX}状态
Key:powerstatus[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.9.1.2.1.2.{#SNMPINDEX}
查看电源状态监控数据,已经成功获取
电源监控数据的状态结果说明
添加电源监控告警触发器
电源告警触发器添加完成
5.4.5 添加风扇监控
该型号交换机没有风扇
5.4.6 查看最终监控效果
zabbix首页-Monitoring-Latest data 查看
6、zabbix监控接入交换机
6.1 克隆监控模版
这里我们直接克隆带外交换机监控模版,名称改为接入交换机的型号就行。
操作步骤:
zabbix首页-Data collection-Templates-Template groups选中Templates/Network devices-选择H3C S5135S-48T4X-EI-Q-Full clone完全克隆-add新建
6.2 添加监控主机
操作步骤:
zabbix首页-Monitoring-Hosts-Create host
6.3 调整模版的自动发现规则
操作步骤:
zabbix首页-Data collection-Templates-选择H3C S6520X-54QC-EI-Discovery rules
6.3.1 修改内存、CPU监控项(可选)
我们先看一下获取的监控数据,因为是2台交换机做的堆叠,所以这里会有2个数据。
如果你认为从获取到的监控数据不知道是那台交换机的,那么可以在该监控项的名字上添加一个宏 {#SNMPINDEX}
然后再观察一下数据
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 (查设备的温度信息)
我们通过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)$
查看温度监控数据,已经成功获取
添加告警触发器的过程这里不演示了,跟带外交换机的区别就是要根据接入交换机的阈值进行调整,也就是大于64即触发告警。
6.3.3 添加风扇监控(必须)
官网风扇OID查询
风扇OID结果验证
交换机验证:display fan
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip 1.3.6.1.4.1.25506.8.35.9.1.1.1.2
添加风扇自动发现规则
Nmae:风扇
Key:fan
SNMP OID:discovery[{#FAN},1.3.6.1.4.1.25506.8.35.9.1.1.1.2]
添加风扇状态监控项
Nmae:风扇{#SNMPINDEX}状态
Key:fanstatus[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.9.1.1.1.2.{#SNMPINDEX}
查看风扇状态监控数据,已经成功获取
风扇监控数据的状态结果说明
添加风扇监控告警触发器
风扇告警触发器添加完成
6.3.4 查看最终监控效果
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 (查设备的温度信息)
同理,汇聚交换机温度发现规则的oid过滤规则也要进行更改,^(5[1-5]|45[1-5])$
查看温度监控数据,已经成功获取
然后自行添加告警触发器 #hotspot5 这个就不添加了,应该看后面阈值都是NA,估计这个传感器不重要吧。
7.3.2 查看最终监控效果
8、zabbix监控防火墙
8.1 克隆监控模版
跟上面的一样,过程不演示了。
8.2 添加监控主机
跟上面的一样,过程不演示了。
8.3 调整模版的自动发现规则
CPU、风扇、电源这些都不用调整了,只用调整一下内存、温度的OID过滤规则
8.3.1 修改内存监控(必须)
我们先通过snmpwalk验证一下OID
这个OID是我们带外、接入、汇聚交换机使用的,它是拿来查询内存空闲率的。但是这个OID在防火墙设备上用不了,所以我们得去官网上面再查询一下
已使用内存OID验证
防火墙验证:display memory
snmpwalk验证:snmpwalk -v 2c -c 团体名 ip 1.3.6.1.4.1.25506.8.35.18.4.10.1.10
添加内存自动发现规则
Nmae:内存
Key:memory
SNMP OID:discovery[{#MEMORY},1.3.6.1.4.1.25506.8.35.18.4.10.1.10]
添加内存使用率监控项
Nmae:内存使用率
Key:memoryused[{#SNMPINDEX}]
SNMP OID:1.3.6.1.4.1.25506.8.35.18.4.10.1.10.{#SNMPINDEX}
查看内存使用率监控数据,已经成功获取
添加内存告警触发器
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 (查设备的温度信息)
防火墙的温度发现规则的oid过滤规则也要进行更改,^(4[4-9])$
查看温度监控数据,已经成功获取
然后添加告警触发器
8.3.3 添加vrrp监控(可选)
8.3.4 查看最终监控效果
9、总结
1、配置任何监控,一定要验证oid的结果是否和设备上命令执行的结果完全匹配。
2、为什么要用自动发现规则,因为设备上的硬件信息太多了,如果按单一监控项去添加就太繁琐了。
3、自动发现规则oid和监控项oid是有区别的,一个是获取设备的接口名称,另外一个是获取接口状态
4、配置的监控并不是更新时间越快越好,保留的数据也不是越久越好,要考虑你zabbix-server的性能,我这台服务端就是个虚拟机,上面一共监控了一千多个设备,包括服务器、OS、交换机、ap、以及监控摄像头等等。
5、监控项要灵活调整,如果你不熟悉网络设备之间的链路是怎么互联的,其实也可以加上交换机堆叠的状态、上行下行链路以及防火墙的HA主备链路、VRRP状态等等监控项。