Opennms

讓計數器進入 OpenNMS

  • April 17, 2012

我正在努力將我的 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,但沒有進一步幫助事項)。

我在定義我的新組時使用 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

解決了這個問題。在查看Jeff Gehlbach 回答的 OpenNMS 郵件列表中的舊文章時,我得到了正確的想法——歸功於它應得的。

引用自:https://serverfault.com/questions/380121