支持SNMP协议的设备有很多,比如交换机、Linux服务器、打印机等大部分的网络设备(联网的设备)。运维监控中最常见的就是交换机了(Linux服务器采用Agent的方式监控),zabbix中监控SNMP设备可以这样整(以交换机为例)。
1、首先添加SNMP设备,这里主要是交换机,zabbix添加监控主机的方法很多,这里手动添加(zabbix使用SNMP监控,zabbix-server编译的时候得加上–with-net-snmp)。
2、用snmpwalk和snmpget命令获取SNMP的相关信息(该命令在net-snmp安装包中)
1 | $ snmpwalk -v 2c -c public 192.168.1.1 |
3、获取监控项最关键的值OID(对象标识符,通过OID取读取设备对应的状态) 从上面的信息中可以找到端口流入和流出流量(实际记录的是历史流量总和,是个累计值)的相关字段
1 | IF-MIB::ifInOctets.4227674 = Counter32: 2448663618 |
根据IF-MIB::ifInOctets、IF-MIB::ifOutOctets可以获取到对应端口422674的流入流量和流出流量的OID
1 | $ snmpget -v 2c -c public -On 192.168.1.1 IF-MIB::ifInOctets.4227674 |
端口422674对应的端口名称可以在第一个命令snmpwalk -v 2c -c public 192.168.1.1
的输出内容中找到
1 | IF-MIB::ifDescr.4227626 = STRING: Ethernet1/0/1 |
貌似有捷径可以走,当获取到任意端口的OID,如1.3.6.1.2.1.2.2.1.16.4227674
。更改该OID的倒数第二个字段,当倒数第二个字段为10时表示流入流量,为16时为流出流量。改成2可以得到所有端口的名称和对应的OID,如下(这样就不用一个一个端口的查OID了)。
1 | $ snmpwalk -v 2c -c public -On 192.168.1.1 1.3.6.1.2.1.2.2.1.2 |
4、万事俱备就可以创建监控项了item 端口流入速率
由于获取的是流量累计值,故选择“差量(速率每秒)”
流出仅仅就键值和OID不同,当然名称也不同咯!
SNMP设备其它监控数据如:内存、CPU利用率、温度等设备支持的数据监控添加方式类同。