讓計數器進入 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.*.jrb
和tcp*.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 郵件列表中的舊文章時,我得到了正確的想法——歸功於它應得的。