Docker

SNMP:hrSystemUptime.0:未知對象標識符(未找到子 ID:(頂部)-> hrSystemUptime)

  • June 16, 2020

發出以下命令時,標題中出現錯誤。

$  snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase 192.168.x.x hrSystemUptime.0
hrSystemUptime.0: Unknown Object Identifier (Sub-id not found: (top) -> hrSystemUptime)

如果我在目標系統 (192.168.xx) 上輸入相同的命令,我會得到一個有效的結果。

# snmpget -v3 -u edgeos-snmpd-user -l authPriv -a SHA -x AES -A authPhrase -X privPhrase localhost hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1362660) 3:47:06.60

客戶端是基於 Ubuntu 18.04.1 的 Docker 容器,目標是基於 Alpine 的 Linux 設備。

我已經安裝snmp-mibs-downloader在容器中並且hrSystemUptime條目存在於"/var/lib/snmp/mibs/ietf/HOST-RESOURCES-MIB.

-- The Host Resources System Group

hrSystemUptime OBJECT-TYPE
   SYNTAX     TimeTicks
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION
       "The amount of time since this host was last
       initialized.  Note that this is different from
       sysUpTime in the SNMPv2-MIB [RFC1907] because
       sysUpTime is the uptime of the network management
       portion of the system."
   ::= { hrSystem 1 }

但是,它似乎沒有搜尋此目錄。

$ net-snmp-config --default-mibdirs
/home/edge/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp

我複製HOST-RESOURCES-MIB/home/edge/.snmp/mibs但沒有任何區別。

我必須在容器中做什麼才能使其正常工作?

snmp軟體包/etc/snmp/snmp.conf安裝:

# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
mibs :

註釋掉最後一行可以解決文件中註釋所描述的問題。完全刪除snmp.conf具有相同的效果。

當我試圖讓 telegraf 通過 docker 輪詢路由器以獲取各種統計資訊時,我遇到了類似的錯誤。

它似乎想要的文件 HOST-RESOURCES-MIB 位於硬連結文件夾中(不知道正確的術語,但使用 ls -l,它與連結的 dest.specificed 的顏色不同),但即使使用正確的docker 配置中的捲和正確的 /usr/* 權限,不行。

花了半個晚上弄亂它,但當我在 docker 中將兩個硬連結文件夾指定為卷時,它最終起作用了:

- /var/lib/snmp/mibs/ietf:/usr/share/snmp/mibs/ietf:ro
- /var/lib/snmp/mibs/iana:/usr/share/snmp/mibs/iana:ro

很確定這只是我是個白痴,可能沒有按正確的順序安裝東西,但我越是認為它似乎是一個 docker/ubuntu 問題——應該開箱即用,對嗎?

我是一個完全的 linux 菜鳥,所以對於我搞砸的事情有一個簡單的解釋,誰知道呢。希望這可以幫助某人

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