网络设备不像服务器,添加你装个agent就能搞定。网络它更像一个黑盒子,设备只给你留了SNMP这扇门。添加所以,网络zabbix监控交换机、设备路由器,添加核心就一句话:用SNMP协议去撬开它,网络然后把数据拽回来。设备
先别急着点“创建主机”。添加你得搞清楚手里这台设备支持什么版本的网络SNMP。很多老交换机只认v2c,设备新一点的添加华为、H3C可能开了v3。网络我遇到过最坑的设备情况是,设备SNMP community设成了“public”,但ACL限制了管理IP——你在zabbix里怎么测都是超时,最后查出来是安全策略没放行。所以,第一步永远是先用命令行工具验证连通性。
拿Linux服务器来说,装个snmpwalk,直接跑:
snmpwalk -v2c -c public 192.168.1.1 sysDescr
如果返回了一串类似“H3C Comware Platform Software”的文本,恭喜,门开了。如果返回超时或者no response,别折腾zabbix了,先去查网络、防火墙、community拼写。
验证通过后,打开zabbix前端,走“数据采集”→“主机”→“创建主机”。主机名称随便填,比如“核心交换机-01”。可见名称写中文没问题,但技术名称最好用IP或FQDN,方便后期脚本调用。模板那栏,别偷懒选“Template Module SNMPv2”,要选具体的设备模板——zabbix官方提供了“Template Network Cisco IOS”之类的,但第三方设备,比如锐捷、华为,你最好自己用“Template Network Generic by SNMP”打底,再手动加监控项。
接口配置是关键。默认会填一个IP,端口161,版本选SNMPv2。但很多人忽略“SNMP community”这个字段,留空就保存了。结果呢?zabbix-server去轮询,设备直接丢包。这里填上你刚才验证通过的community,比如“public”。注意,如果设备上做了community映射到不同只读视图,这里必须填那个有读权限的。
保存后,别急着看数据。去“检测”→“最新数据”,搜你刚创建的主机名。等个30秒到1分钟,看有没有数据进来。我见过太多人,配置完发现监控项状态是“不支持”——多半是OID写错了,或者设备返回的数据类型跟模板不匹配。比如,有些设备CPU利用率返回的是整数百分比,但模板里定义的是字符串,你得去“监控项”里手动改“预处理”规则,加一个“自定义乘法”或者“正则表达式提取”。
还有个坑,很多网络设备的接口索引(ifIndex)不是连续的。比如GigabitEthernet0/0/1是ifIndex 1,但GigabitEthernet0/0/2可能是ifIndex 10。zabbix自带的“网络接口发现”规则会扫所有ifIndex,没问题。但如果你手动添加监控项,千万别按顺序猜。用snmpwalk先看一遍ifDescr,确认实际索引。
最后说下轮询间隔。网络设备不像业务服务器,CPU扛得住频繁查询。默认1分钟一次就够了。但流量监控,如果你用“接口流量”模板,它内部用的是64位计数器,间隔设成30秒也还好。我习惯把SNMP超时设成3秒,重试1次——很多设备响应慢,等太久反而拖慢整个zabbix server的轮询队列。
设备加完,记得去“图形”里拉一张流量图看看。如果曲线是平的,大概率是OID错了;如果曲线是锯齿状,说明有突发流量,正常。还有个小技巧,把设备的上联口单独建个触发器,流量超过带宽80%就报警——这比监控CPU内存实用多了,毕竟网络设备死机前,往往先跑满带宽。
就这些。zabbix加网络设备,本质就是SNMP的活,别把它想复杂了。验证、填对community、选对模板、处理OID差异,四步走完,剩下的交给时间积累数据。