![從 SNMP 取得特定資訊需要採取哪些步驟?](https://rvso.com/image/1597816/%E5%BE%9E%20SNMP%20%E5%8F%96%E5%BE%97%E7%89%B9%E5%AE%9A%E8%B3%87%E8%A8%8A%E9%9C%80%E8%A6%81%E6%8E%A1%E5%8F%96%E5%93%AA%E4%BA%9B%E6%AD%A5%E9%A9%9F%EF%BC%9F.png)
我想查詢 FortiGate 的 CPU 使用情況。
根據 Fortinet 文檔,要使用的變數是 fgPerCpuHighDetails:
$ grep fgPerCpuHighDetails /home/qa/.snmp/mibs/FORTINET-*
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib:fgPerCpuHighDetails OBJECT-TYPE
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib: OBJECTS { fnSysSerial, sysName, fgPerCpuHighDetails }
/home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib: fgProcModMemCapacity, fgProcModMemUsage, fgPerCpuHighDetails,
但是,當我嘗試探測 fgPerCpuHighDetails 時,我得到:
$ snmpget -v2c -cpublic -mALL 192.168.1.99 fgPerCpuHighDetails
FORTINET-FORTIGATE-MIB::fgPerCpuHighDetails = No Such Object available on this agent at this OID
您能否推薦任何 URL 來解釋從 SNMP 獲取資訊的步驟?
$ sudo systemctl status snmpd -l
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-07-17 16:46:31 PDT; 21h ago
Main PID: 879 (snmpd)
Tasks: 1
CGroup: /system.slice/snmpd.service
└─879 /usr/sbin/snmpd -LS0-6d -f
Jul 17 16:46:30 vestal8 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Jul 17 16:46:31 vestal8 snmpd[879]: NET-SNMP version 5.7.2
Jul 17 16:46:31 vestal8 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
$ snmpwalk -v2c -c public 192.168.1.99 fgPerCpuHighDetails
fgPerCpuHighDetails: Unknown Object Identifier (Sub-id not found: (top) -> fgPerCpuHighDetails)
答案1
要使用文字形式輪詢 OID,您應該使用符號MIB::OID
。如果您使用數位形式的 OID,則可以直接使用它。這是因為 SNMP 代理程式使用數位形式,而人類使用文字形式(類似於 DNS)。因此,代理可以輕鬆解析數字,但需要將文字形式轉換為數字。 MIB 可以做到這一點,因此您需要指定定義 OID 的正確 MIB,以便 snmp 命令可以在輪詢代理之前對其進行轉換。
MIB名稱是用DEFINITIONS
MIB檔案中的語句定義的。不要將其與 MIB 檔案的名稱混淆(有時相同,但並非總是如此)。因此,正如fgPerCpuHighDetails
您的範例中定義的那樣FORTINET-FORTIGATE-MIB.mib
,請執行以下操作:
grep DEFINITIONS /home/qa/.snmp/mibs/FORTINET-FORTIGATE-MIB.mib
找出 MIB 的名稱。我沒有這個特定的 MIB,但名稱可能是FORTINET-FORTIGATE-MIB
.
有了這些訊息,您就可以輪詢設備:
snmpwalk -v2c -c public 192.168.1.99 FORTINET-FORTIGATE-MIB::fgPerCpuHighDetails
用於snmptranslate
解析 MIB 並探索它們:
snmptranslate -Td MIB::OID
用於 OID 的描述snmptranslate -Tp MIB::OID
繪製 OID 和所有子 OID 的層次結構。snmptranslate -On MIB:OID
將 OID 轉換為數位形式檢查手冊頁以取得更多選項。