功能说明 / 网络设备SNMP监测使用说明

SNMP模块主要用来监测路由器、交换机、防火墙等设备的运行状态和性能数据,因为SNMP需要OID获取对应的指标数据,但是每个厂商的设备OID可能有所不同
所以我们需要自己去找设备厂商获取对应的OID,或者去厂商官网查询这些OID信息
如果服务器或者主机支持SNMP,那就可以用SNMP监控主机
建议使用snmp v1或者snmp v2协议监控SNMP设备,因为snmp v3目前兼容性不太好(后面版本会改进)
一些常用的OID整理和参考使用
如果esxi开启了snmp,也可以用snmp监测esxi,esxi的OID参考
如何在ubuntu安装snmp服务
1、SNMP监测模块和PING监测模块,有什么区别
PING只能监测设备是否在线和响应时间,而SNMP监测除了监测设备是否在线,还可以通过SNMP协议来获取设备的各种指标数据,比如基本信息、上下行总流量、每个接口的传输速率、cpu使用率、内存使用率、磁盘占用率、温度、电压、每个接口状态(UP或DOWN)
2、SNMP监测模块,cpu使用率、内存使用率、磁盘占用率、温度、电压是通过snmpget获取值,还是通过snmpwalk获取值?
(1) v3.6.2之前版本,cpu使用率、内存使用率、磁盘占用率、温度、电压,这些值系统目前通过snmpget方式获取值
如果厂商提供的是snmpwalk方式获取,那么这几个指标可能获取不到数据,请让厂商提供snmpget方式的oid,我们可以在添加页面右下角的【测试OID】来测试OID是否能获取到值
(2) 从v3.6.2版本开始,cpu使用率、内存使用率、磁盘占用率、温度、电压这些OID值,新增支持使用snmpwalk方式获取数据(原来snmpget方式依然支持),具体实现方式为使用聚合函数获取
比如在CPU使用率OID文本框输入avg[1.3.6.1.4.1.2011.5.25.31.1.1.13.1.3],表示系统会自动计算获取到多个数据的平均值,记得带[],具体如下
如果觉得SNMP监控查找OID比较复杂,也可以先用PING监控模块 监控设备
3、从v3.5.1版本开始,如果不输入上下行流量的OID,那么系统将不会自动获取所有接口(端口)的流量
如果要获取所有接口的流量,请按照页面提示输入对应的OID即可,一般使用默认的OID就可以获取所有接口的流量和速率,上行流量的OID:1.3.6.1.2.1.2.2.1.16,下行流量OID:1.3.6.1.2.1.2.2.1.10
如果想要获取部分接口的流量,请换行输入对应接口的OID即可
4、从v3.4.9版本开始,磁盘占用率、CPU使用率、内存使用率,支持使用表达式获取值
当然,也可以用以前的方式,直接填写OID来获取值
磁盘占用率、CPU使用率、内存使用率,这种是通过snmpget方式获取值,暂不支持snmpwalk方式获取,如果使用snmpwakl请看上面第2条说明
表达式格式如下,表达式中的OID系统会自动替换为OID获取的值,带入表达式计算结果,所得的结果值,就是对应的指标值
v3.5.0版本开始,新增支持监控交换机的接口状态 UP DOWN
v3.5.4版本开始,新增支持监控交换机的每个接口的传输速率(上行和下行)
5、SNMP监测默认每20分钟扫描一次
如果我们刚添加完成,看不到监控数据是正常的,等下个扫描时间就会看到数据了
也可以在server/config/application.yml修改监控时间,修改完后 重启server程序 即可
每次扫描,会间隔2秒,取前后两次进出口对应流量的差值,然后除以2,计算得出端口每秒的上下行传输速率
6、SNMP设备监测,默认SNMP设备监控不通连续1次,就会发送告警通知
也可以修改告警次数,在配置文件server/config/application.yml修改,修改完重启server程序生效
此参数snmpWarnCount从v3.6.2版本开始支持,所以需要升级到v3.6.2或者以上版本,如果配置文件没有这个参数,那么也可以手动添加下
7、SNMP监测,可以通过snmp协议来监测交换机的端口(每次可添加多个端口)进出口流量信息
如下指令,获取所有端口入流量(byte)信息

[root@VM-0-14-centos ~]# snmpwalk -v 2c -c public [交换机IP] 1.3.6.1.2.1.2.2.1.10
IF-MIB::ifInOctets.1 = Counter32: 1926573344
IF-MIB::ifInOctets.2 = Counter32: 0
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifInOctets.4 = Counter32: 0
IF-MIB::ifInOctets.6 = Counter32: 267822969
IF-MIB::ifInOctets.7 = Counter32: 0
IF-MIB::ifInOctets.8 = Counter32: 0
	
IF-MIB::ifInOctets.后的数字即为端口序号,在1.3.6.1.2.1.2.2.1.10后加端口序号,即为此端口的入口流量OID
获取第1个端口入流量(byte),1.3.6.1.2.1.2.2.1.10.1为入口流量的OID

[root@VM-0-14-centos ~]# snmpwalk -v 2c -c public [交换机IP] 1.3.6.1.2.1.2.2.1.10.1
IF-MIB::ifInOctets.1 = Counter32: 1926573344
	
获取第1个端口出流量(byte),把最后.10改成.16,即为出口流量的OID

[root@VM-0-14-centos ~]# snmpwalk -v 2c -c public [交换机IP] 1.3.6.1.2.1.2.2.1.16.1
IF-MIB::ifOutOctets.1 = Counter32: 1926573344
	
SNMP监测【添加】页面信息如下图所示,把1,2,3,7端口的出口流量的OID和入口流量的OID输入即可
如果需要指定SNMP服务端口(默认161)的话,在[交换机IP]后加端口即可,如:10.0.19.242:1161
获取交换机端口列表及描述

[root@VM-0-14-centos ~]# snmpwalk -v 2c -c public [交换机IP] 1.3.6.1.2.1.2.2.1.2
	
8、Paessler SNMP Tester(一款免费的SNMP调试工具,可以模拟发送snmp请求测试)
提示:v3.5.3版本开始,添加页面新增了一个按钮【测试OID】,可以测试OID是否能获取到数据。此外,列表页面也有测试按钮,点击后可以实时获取snmp的数据
9、snmp监测交换机视频讲解
10、也可以使用server-backup监控snmp设备
server-backup可以减少server端的监控工作,提升监控性能
11、其他说明:v3.5.5版本,如果上下行流量的OID只填写了一部分接口OID,SNMP监测上行流量速率显示为0的小bug
但是下行速率是正常显示数据的,v3.5.6版本已经修复此bug
12、如果SNMP监控列表数据的时间不更新,是什么原因
我们可以使用server-backup工具 监控SNMP设备
也可以检查下SNMP的监控间隔时间,间隔时间建议不小于10分钟,因为有时候SNMP设备响应比较慢些
也可以修改下数据库表SNMP_INFO中的字段SYS_DESC_VAL,把字段长度改为200,有时候字段长度不够用也会导致数据不更新
13、为什么设备可以ping通,但是SNMP列表页面显示设备是下线呢?
我们可以暂时使用server-backup-v3.5.8 监控SNMP设备,v3.5.9版本开始已经修复此bug
我们将在v3.5.9版本,在server主程序也优化修复此bug