将计数器放入 OpenNMS

将计数器放入 OpenNMS

我正在努力将我的 APC RackPDU 的负载图导入 OpenNMS。我已在中定义了适当的值datacollection-config.xml

<groups>
  <group name = "APC-RackPDU" ifType="ignore">
    <mibObj oid=".1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.2" instance="0" alias="rPDUCurB1" type="Gauge32" />
    <mibObj oid=".1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.3" instance="0" alias="rPDUCurB2" type="Gauge32" />
  </group>
</groups
<systems>
  <systemDef name="APC UPS">
    <sysoidMask>.1.3.6.1.4.1.318.</sysoidMask>
    <collect>
      <includeGroup>APC</includeGroup>
      <includeGroup>APC-RackPDU</includeGroup>
      <includeGroup>mib2-ups-rfc1628</includeGroup>
    </collect>
  </systemDef>
</systems>

并且使用snmpget我可以检索有问题的值:

# snmpget -v2c -c public 192.168.127.133 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.3
SNMPv2-SMI::enterprises.318.1.1.12.2.3.1.1.2.3 = Gauge32: 38

我还定义了一个报告来snmp-graph.properties处理收集的数据,但我甚至没有看到它被收集。主机的 rrd 目录(rrd/snmp/170在我的情况下)仅包含通用文件icmp.*.jrbtcp*.jrb数据文件,而没有预期的 rPDUCurB1 / rPDUCurB2 文件的迹象。

我尝试清理rrd/snmp/170并强制对节点进行功能扫描,但结果只是相同的文件。对RackPDU(组定义名称)或rPDUCur(值别名)进行快速日志 grep 没有任何结果。

我怀疑功能没有被正确检测到,但我不知道如何进一步调试它。

编辑:我将 collectd 的日志级别增加到“DEBUG”,并且记录了一些有关该节点的可疑行:

2012-04-17 12:01:50,636 DEBUG [CollectdScheduler-20 Pool-fiber0] DefaultDataCollectionConfigDao: getMibObjectList: collection: default sysoid: .1.3.6.1.4.1.318.1.3.4.5 address: 192.168.127.133 ifType: -2
[...]
DefaultDataCollectionConfigDao: getMibObjectList: includes sysoid .1.3.6.1.4.1.318.1.3.4.5 for system <name>: APC UPS
2012-04-17 12:01:50,636 DEBUG [CollectdScheduler-20 Pool-fiber0] DefaultDataCollectionConfigDao: getMibObjectList: MATCH!! adding system 'APC UPS'
2012-04-17 12:01:50,636 DEBUG [CollectdScheduler-20 Pool-fiber0] [...]
DefaultDataCollectionConfigDao: processGroupName:  processing group: APC groupIfType: ignore ifType: -2
2012-04-17 12:01:50,649 DEBUG [CollectdScheduler-20 Pool-fiber0] DefaultDataCollectionConfigDao: processGroupName: OIDs from group 'APC:ignore' are excluded for ifType: -2
2012-04-17 12:01:50,649 DEBUG [CollectdScheduler-20 Pool-fiber0] DefaultDataCollectionConfigDao: processGroupName:  processing group: APC-RackPDU groupIfType: ignore ifType: -2
2012-04-17 12:01:50,649 DEBUG [CollectdScheduler-20 Pool-fiber0] DefaultDataCollectionConfigDao: processGroupName: OIDs from group 'APC-RackPDU:ignore' are excluded for ifType: -2

这让我疑惑为什么 OIDs from group 'APC-RackPDU:ignore' are excluded for ifType: -2,但我尝试将组的定义更改为<group name = "APC-RackPDU" ifType="-2">(这根本不起作用,并且在 OpenNMS 启动时引发了验证错误)和<group name = "APC-RackPDU" ifType="all">(这有效并OIDs from group 'APC-RackPDU:all' are included for ifType: -2在日志中产生了,但没有进一步帮助解决问题)。

答案1

我在定义新组时使用 APC UPS 定义作为模板,并且在组装用于测试的 OID 时没有注意“实例”属性,这真是自找麻烦snmpget。将定义更改为

<groups>
  <group name = "APC-RackPDU" ifType="ignore">
    <mibObj oid=".1.3.6.1.4.1.318.1.1.12.2.3.1.1.2" instance="2" alias="rPDUCurB1" type="Gauge32" />
    <mibObj oid=".1.3.6.1.4.1.318.1.1.12.2.3.1.1.2" instance="3" alias="rPDUCurB2" type="Gauge32" />
  </group>
</groups

解决了这个问题。当我看到一个旧的发布到 OpenNMS 邮件列表,由 Jeff Gehlbach 回答- 功劳归于应得。

答案2

最好的方法是通过 OpenNMS IRC 频道运行此操作。我确信他们已经看到过该设备,因为它相当常见。

相关内容