web-dev-qa-db-ja.com

収集されたSNMPプラグインがMIBを見つけることができません

Collectdを使用して、snmpプラグインを介してCiscoギアをポーリングします。必要なCiscoMIB(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.

これが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アドレスを使用しようとしましたが、何も得られません。

1
that1guy15

いくつかの設定で遊んで、Imはいくつかの成功を収めています。

タイプを「gauge」に変更し、テーブルを「false」に変更すると、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

これが今の設定です。

 <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名前の問題を理解できません。

2
that1guy15