Docker
SNMP:hrSystemUptime.0:未知對象標識符(未找到子 ID:(頂部)-> hrSystemUptime)
發出以下命令時,標題中出現錯誤。
$ 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 菜鳥,所以對於我搞砸的事情有一個簡單的解釋,誰知道呢。希望這可以幫助某人