![SNMP から特定の情報を取得するための手順は何ですか?](https://rvso.com/image/1597816/SNMP%20%E3%81%8B%E3%82%89%E7%89%B9%E5%AE%9A%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%89%8B%E9%A0%86%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F.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
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
snmptranslate
MIB を解析して調査するには、次を使用します。
snmptranslate -Td MIB::OID
OIDの説明snmptranslate -Tp MIB::OID
OID とすべての子 OID の階層構造をマップします。snmptranslate -On MIB:OID
OIDを数値形式に変換するその他のオプションについては、man ページを確認してください。