web-dev-qa-db-ja.com

MIBファイルからOIDを取得する方法は?

マネージャが持っているMIBファイルからすべてのオブジェクトを読みたいのですが。

SNMP対応エージェントからデータを取得するツールを1つ開発しました。マネージャーのMIBファイルからすべてのOIDを表示することで、このツールを拡張したいと思います。

NET-SNMPライブラリを使用しています。

私は以下を見ました:

/usr/local/share/snmp/mibs/ 

フォルダーに多くのMIBファイルが含まれていますが、どのようにしてそのOIDのリストを作成できますか?

MIBを調べて構造を確認しましたが、MIBファイルに記述されているすべてのオブジェクトのOIDを取得するにはどうすればよいですか?

次のようにすべてのOIDをリストしたいと思います。

  1. SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
  2. SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0 ...など

すべてのMIBファイルをスキャンして、ファイルからすべてのOIDを見つけたいと思います。

どうすればよいですか?

11
pradipta

net-snmpライブラリのsnmptranslate- commandを使用します。以下のパラメーターで試してください。

-M "directory containing your MIB file"
-m ALL
-Pu
-Tso
12
Massy

いくつかの問題の後、次のコマンドを使用して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
6
artBCode

実行中のOIDサーバーからSNMPsをプルするには、-Ciオプションを使用してツールsnmpwalkを使用することができます。ツールにはNet-SNMPが付属しています。

5
alk

他の2つのSO QAsは、実行中のシステムをウォーキングせずにそれを行う方法を示しています。

それは出発点にすぎません。そこから先にたくさんのコーディングがあります。

更新:別の素敵なツールは、SNMP :: MIB :: Compilerにパッケージ化されたPerl SNMPコンパイラです。 Perlのスクリプトを使用すると、すべてのMIB要素/コンポーネントが内部データ構造に取り込まれ、構造ツリーを調べるか、ツリーをダンプしてダンプで事後解析を行うことにより、そこから情報を選択できます。

1
minghua