2012-09-20 10 views
8

マネージャが持っているMIBファイルからすべてのオブジェクトを読みたい。MIBファイルからOIDを取得する方法は?

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

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

私は、次の見た:

/usr/local/share/snmp/mibs/ 

フォルダを、それは多くのMIBファイルが含まれていますが、どのように私はそれを持っているOIDのリストを形成することができますか?

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

私は次のようにすべてのOIDをリストしたい:私はすべてのMIBファイルをスキャンしてから、すべての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 をファイル。

    どうすればよいですか?

答えて

5

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

+0

お返事ありがとうございます。 – pradipta

1

他の2 SO QAをあなたが実行しているシステムを歩いせずにそれを行うことができます方法を示しています。

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

アップデート:もう一つの素晴らしいツールは、SNMP :: MIB :: Compilerにパッケージされたperl SNMPコンパイラです。 perlのスクリプトを使用すると、内部のデータ構造に引っ張られたすべてのMIB要素/コンポーネントが取得され、そこから構造ツリーを調べるか、ツリーをダンプしてポスト解析を行うことで、そこから情報を取り出すことができます。

+1

あなたの答えをありがとう... – pradipta

9

snmptranslate-net-snmpのコマンドを使用してください。

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

いくつかの問題が発生した後、次のコマンドを使用して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 
関連する問題