現在、SNMPWalkから拡張出力を取得しようとしています。
snmp-mibsダウンローダをインストールしてdownload-mibsを実行しています。
次のコマンドを使用しています。
snmpwalk -v2c -c public [ip] -m NET-SNMP-EXTEND-MIB::nsExtendObjects
次のエラーが発生しました。
MIB search path:
/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/var/lib/mibs:/var/lib/mibs/ietf:/var/lib/mibs/iana
Cannot find module (nsExtendObjects): At line 1 in (none)
手動で確認したように、モジュールが正しい位置にあることを確認できます。
モジュールの位置を指定するために-Mを使ってみました。
NET-SNMPバージョン:5.9を使用してください。
エラーが発生した後は、拡張モードを使用しない場合と同じ出力が表示されます。
また、同じ構成を使用する別のコンピューターから拡張出力を取得できるため、異なる出力が必要であることを確認できます。 「公開」文字列は正しいです。
何か助けてくれてありがとう :)
答え1
この-m
オプションは、コロンで区切られたリストという1つの引数を使用します。MIBモジュール名、個々のMIBオブジェクトの名前ではありません。
結果は-m NET-SNMP-EXTEND-MIB::nsExtendObjects
3つのMIBモジュール名で解析されます。
NET-SNMP-EXTEND-MIB
有効なMIBモジュール名。<null>
これは明らかに無視されました。nsExtendObjects
実際には、NET-SNMP-EXTEND-MIBモジュール内のMIBオブジェクトの名前です。
巡回を開始するためにOIDを指定することは実際にはオプションですsnmpwalk
。指定しない場合、デフォルト値は OID として指定され、 SNMPv2-SMI::mib-2
誤った構文に関するエラーメッセージは表示されません。代わりに、コマンドは名前付きMIBモジュールを見つけようとしますnsExtendObjects
が、見つからないようです。
何らかの理由でこのオプションを引き続き使用する場合は、正しい-m
構文は次のとおりです。
snmpwalk -v2c -c public [ip] -m NET-SNMP-EXTEND-MIB NET-SNMP-EXTEND-MIB::nsExtendObjects
つまり、最初のものNET-SNMP-EXTEND-MIB
はオプションの引数で-m
あり、2番目は開始したいOIDの一部です。
ただし、この場合は-m
オプションを完全に省略できます。
snmpwalk -v2c -c public [ip] NET-SNMP-EXTEND-MIB::nsExtendObjects
どちらの形式も同じ結果を生成する必要があります。
download-mibs
正常に完了したら、/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
システムに名前付きファイルが必要です。
$ sha256sum /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
ad05abc5ec39107a140d46e4e62e3fc0cf38eb26c1abe634fd7e9a7c7715e64e /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt