使用Collectd通过snmp插件轮询Cisco设备。 我有加载到net-snmp所需的Cisco mib(CISCO-MEMORY-POOL-MIB和CISCO-PROCESS-MIB),snmpwalk可以看到它们。
但是,当我尝试将它们添加到collectd我重新启动collectd服务时出现以下错误:
Cannot find module (CISCO-MEMORY-POOL-MIB): At line 0 in (none) Cannot find module (CISCO-PROCESS-MIB): At line 0 in (none)
日志文件显示:
[2016-11-09 14:13:56] Exiting normally. [2016-11-09 14:13:56] collectd: Stopping 5 read threads. [2016-11-09 14:13:56] snmp plugin: read_objid (CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName) failed. [2016-11-09 14:13:56] snmp plugin: read_objid (CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName) failed. [2016-11-09 14:13:56] snmp plugin: snmp_parse_oid (CISCO-PROCESS-MIB::cpmCPUTotal5secRev) failed. [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_free' [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_used' [2016-11-09 14:13:56] snmp plugin: No such data configured: `cisco_cpu' [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_free' [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_used' [2016-11-09 14:13:56] snmp plugin: No such data configured: `cisco_cpu' [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_free' [2016-11-09 14:13:56] snmp plugin: No such data configured: `memory_used' [2016-11-09 14:13:56] snmp plugin: No such data configured: `cisco_cpu' [2016-11-09 14:13:56] Initialization complete, entering read-loop.
这是我的collectd.conf的snmp部分
<Plugin snmp> <Data "SysInfo"> Type "counter" Table false Instance "sysName" Values "SNMPv2-MIB::sysName" </Data> <Data "uptime"> Type "uptime" Table false Instance "Uptime" scale 0.01 Values "DISMAN-EVENT-MIB::sysUpTimeInstance" </Data> <Data "if_octets"> Type "if_octets" Table true Instance "IF-MIB::ifAlias" Values "IF-MIB::ifHCInOctets" "IF-MIB::ifHCOutOctets" </Data> <Data "if_errors"> Type "if_errors" Table true Instance "IF-MIB::ifAlias" Values "IF-MIB::ifInErrors" "IF-MIB::ifOutErrors" </Data> <Data "memory_free"> Type "memory_free" Table true Instance "CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName" Values "CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree" </Data> <Data "memory_used"> Type "memory_used" Table true Instance "CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName" Values "CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed" </Data> <Data "cisco_cpu"> Type "cisco_cpu" Table true Values "CISCO-PROCESS-MIB::cpmCPUTotal5secRev" "CISCO-PROCESS-MIB::cpmCPUTotal1minRev" "CISCO-PROCESS-MIB::cpmCPUTotal5minRev" </Data>
我在这里错过了什么? 我也尝试使用OID地址,而不是名字,但我什么都没有得到。
玩一些设置,我获得了一些成功。
如果我将types更改为“量表”,并将表更改为“假”,则CISCO-MEMORY-POOL PoolFree / Used将起作用。 说得通。 但CISCO-PROCESS-MIB cpu返回的百分比看起来像。 仍然不能得到那一个。
下面是snmpwalk返回OID的方法:
[root@NMS-srv2 ~]# snmpwalk -v 2c -c rbhome spine1 CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree.1 = Gauge32: 564215448 bytes [root@NMS-srv2 ~]# snmpwalk -v 2c -c rbhome spine1 CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed.1 = Gauge32: 249119560 bytes [root@NMS-srv2 ~]# snmpwalk -v 2c -c rbhome spine1 CISCO-PROCESS-MIB::cpmCPUTotal1minRev CISCO-PROCESS-MIB::cpmCPUTotal1minRev.7 = Gauge32: 1 percent
这是现在的configuration。
<Data "memory_used"> Type "gauge" Table false Instance "memory_used" Values "1.3.6.1.4.1.9.9.48.1.1.1.5.1" </Data> <Data "cisco_cpu"> Type "gauge" Table false Instance "cpu_used_min" Values "1.3.6.1.4.1.9.9.109.1.1.1.1.7.7" "1.3.6.1.4.1.9.9.109.1.1.1.1.8.7" </Data>
仍然不能找出MIB / OID名称问题。