Собранный плагин SNMP не может найти MIB
Использование Collectd для опроса Cisco gear через плагин snmp. У меня есть необходимые MIB Cisco (CISCO-MEMORY-POOL-MIB и CISCO-PROCESS-MIB), загруженные в net-snmp, и 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.
Вот мой раздел snmp на collectd.conf
<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 вместо имени, но я тоже ничего не получаю.
1 ответ
Играя с некоторыми настройками, и я получаю некоторый успех.
CISCO-MEMORY-POOL PoolFree/Used работает, если я поменяю тип на "gauge" и таблицу на "false". Имеет смысл. Но процессор CISCO-PROCESS-MIB возвращается в процентном соотношении. Все еще не могу получить это.
Вот как 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
Вот конфиг прямо сейчас.
<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.