マネージャが持っているMIBファイルからすべてのオブジェクトを読みたいのですが。
SNMP対応エージェントからデータを取得するツールを1つ開発しました。マネージャーのMIBファイルからすべてのOIDを表示することで、このツールを拡張したいと思います。
NET-SNMPライブラリを使用しています。
私は以下を見ました:
/usr/local/share/snmp/mibs/
フォルダーに多くのMIBファイルが含まれていますが、どのようにしてそのOIDのリストを作成できますか?
MIBを調べて構造を確認しましたが、MIBファイルに記述されているすべてのオブジェクトのOIDを取得するにはどうすればよいですか?
次のようにすべてのOIDをリストしたいと思います。
SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0
...などすべてのMIBファイルをスキャンして、ファイルからすべてのOIDを見つけたいと思います。
どうすればよいですか?
net-snmp
ライブラリのsnmptranslate
- commandを使用します。以下のパラメーターで試してください。
-M "directory containing your MIB file"
-m ALL
-Pu
-Tso
いくつかの問題の後、次のコマンドを使用してOIDを生成することができました。
snmptranslate -Pu -Tz -M ~/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp:`pwd` -m module_name_NOT_file_name > module_name.oid
実行中のOID
サーバーからSNMP
sをプルするには、-Ci
オプションを使用してツールsnmpwalk
を使用することができます。ツールにはNet-SNMP
が付属しています。
他の2つのSO QAsは、実行中のシステムをウォーキングせずにそれを行う方法を示しています。
" MIBファイルを解析してそこからトラップ関連情報を抽出するためのnet-snmpサンプルコード ": 答え は、topに基づくCパーサーのトップレベルフレームワークを示していますNet-SNMPライブラリの.
" Net-SNMP APIを使用してMIBからoidのタイプ(構文)を取得 ":これは、OIDを処理する特定の関数です。
それは出発点にすぎません。そこから先にたくさんのコーディングがあります。
更新:別の素敵なツールは、SNMP :: MIB :: Compilerにパッケージ化されたPerl SNMPコンパイラです。 Perlのスクリプトを使用すると、すべてのMIB要素/コンポーネントが内部データ構造に取り込まれ、構造ツリーを調べるか、ツリーをダンプしてダンプで事後解析を行うことにより、そこから情報を選択できます。