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

SNMP から情報を取得するための手順を説明している URL をお勧めいただけますか?


$ 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 はこれを実行するため、エージェントをポーリングする前に snmp コマンドがそれを変換できるように、OID が定義されている正しい MIB を指定する必要があります。

MIB 名は、MIB ファイル内のステートメントで定義されますDEFINITIONS。これを 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

snmptranslateMIB を解析して調査するには、次を使用します。

  • snmptranslate -Td MIB::OIDOIDの説明

  • snmptranslate -Tp MIB::OIDOID とすべての子 OID の階層構造をマップします。

  • snmptranslate -On MIB:OIDOIDを数値形式に変換する

  • その他のオプションについては、man ページを確認してください。

関連情報