從 SNMP 取得特定資訊需要採取哪些步驟?

從 SNMP 取得特定資訊需要採取哪些步驟?

我想查詢 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名稱是用DEFINITIONSMIB檔案中的語句定義的。不要將其與 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 轉換為數位形式

  • 檢查手冊頁以取得更多選項。

相關內容