2012-03-27 8 views
5

私は自分のMIBサポートをマスターエージェントに追加するためにinstructions on the net-snmp websiteをフォローしていました。ここで新しいMIBマスターエージェントを追加

は私がやったことです:

  1. 私はNET-SNMP /エージェント/ mibgroup /フォルダ内の私のサポートの.cと.hファイルを作成しました。
  2. 自分のMIBファイルを/ usr/local/share/snmp/mibs/folderにコピーしました。
  3. 私が作る "と "make install "を私は走った
  4. "" に./configure --with-MIB-モジュール= "myMib" を走ったのsnmpd -f -Le -d"
  5. 私はSNMPD始めました」 - c snmpd.conf & "
  6. snmpdtranslteコマンドを実行すると、自分のMIB構造を見ることができます。しかし、 snmpget -v2c -cパブリック "MY-MIB-FILE :: myVariable"を使用しようとすると、「* =利用可能なオブジェクトはありません。 このOIDでこのエージェントにあります。

私はチュートリアルが言う正確に何をした、と私はNET-SNMP-TUTORIAL-MIB::nstAgentModuleObject例にsnmpgetsnmpsetを実行することができます。

私がここで逃したものを理解するのを手伝ってください。

+0

すでにあなたの薬にいくつかの痕跡を追加しようとしたことがありますか?これは私が始めるところです。エージェントの読み込みとハンドラのそれぞれのステップで 'fprintf 'を実行して、応答が止まる場所を確認します。それがなければ、可能性もあります。 – j4x

+0

はい、私はトレースを試みました。すべてがうまく見え、エラーもありません。私はコマンドが送信され、 "NO such object"という応答が返ってくるのを見ることができます。これはエラーコード8です。 – user195678

+0

これは関連性があります。私は会社のOIDを持っていないのでMIBファイルをnetSnmpExamplesに添付します。私のMIBファイルには、このセクションがあります:xxxsnmpモジュールID 最終更新日201112220000Z 組織 "www.xxx.com" 連絡先 "email:xxx @ xyz。comの」 DESCRIPTION "私のMIBテスト" REVISION "201112200000Z" DESCRIPTION "最初のドラフト" :: = {netSnmpExamples 5} – user195678

答えて

2

メッセージNo Such Object available on this agent at this OIDは、エージェントが要求されたMIBオブジェクトをまったくサポートしていない場合、またはインデックスまたはインスタンス変数が指定されていない場合に発生します。

リンク先のチュートリアルから、 コミュニティストリングに関連する設定を追加しましたか?詳細hereとしてSNMPCONFを実行することにより、例えば

「初心者とデバッグのヒント」セクションhereに記載されている構成の変更も参照してください。

また、それが

snmpget -v2c -c public MY-MIB-FILE::myVariable.0ようにする必要がありますあなたの変数に指定したインデックスまたはインスタンスを持っていないようです。

snmpd.confにない場合に、マスターエージェントが実行されているホストとポートを明示的に指定することもできます。

+0

Appleman、私はsnmpd.confファイルに設定変更を追加すると思います。私は "snmpget"と "snmpset"を使用すると、最後に ".0"を持っています。ホストとポートを明示的に指定する際に私はあなたの提案を試みます。 – user195678

+0

私は自分のMIBをnetSnmpExamplesに添付しています。私はMIB OIDとしてnetSnmpExamples.5を使用しています。 – user195678

6

「このOIDでこのエージェントで利用可能なオブジェクトはありません」は、netsnmpdに関する限り、ツリーに対応するOIDが存在しないことを示します。

snmptranslateの成功によって混乱することはありません。 SnmptranslateはMIBファイル自体に対してのみ動作し、snmpサーバーへのアクセスはまったく必要としません。したがって、snmptranslateがMIBの詳細を正しく表示しているということは、MIBが$MIBDIRSまたは.snmp/snmp.confファイル(など)にリストされているディレクトリに正しくコピーされていることを示しています。

あなたがチュートリアルに従っていると仮定すると、実装したMIBは単一のスカラ変数を提供します。スカラ変数には、.0のインデックス(つまり接尾辞)が与えられます。次のいずれかのコマンドを実行してみましょう:


snmpget -v2c -c public MY-MIB-FILE::myVariable.0 

または:


snmpwalk -v2c -c public MY-MIB-FILE::myVariable 

後者はあなたMIBのすべてのリストが表示されますが含まれる(あなたのケースでは)、そのOIDの下の葉.0ノード。

これが失敗した場合、コードがコンパイルされ、正しく実行されていることを確認する価値があります。 まず、./configureステップの最後にある詳細を確認して、要約にあなたのMIBが含まれていることを確認します。例えば。 (./configureを--with-MIB-モジュール= "nstAgentModuleObject" に起因する):かつての場合


--------------------------------------------------------- 
      Net-SNMP configuration summary: 
--------------------------------------------------------- 

    SNMP Versions Supported: 1 2c 3 
    Net-SNMP Version:   5.4.1 
    Building for:    linux 
snip 
    Agent MIB code:    nstAgentModuleObject default_modules => snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host 
snip 
--------------------------------------------------------- 

を、あなたはnmagent/.libs/libnetsnmpmibs.so のsnmpd実行ファイルの上にファイルを実行してください init_X()機能ということを確認することができますあなたのMIBに対応しています。また、 init_nstAgentModuleObject()関数が存在することを確認する価値があります。テストする前に make installを実行している場合は、使用しているlibnetsnmpmibs.soライブラリが作成したものであり、パスの問題がないことを確認すること( lddを使用すること)が有効です。

init_X()機能内でDEBUGMSGTL()コールを追加すると、組み込みのデバッグメッセージングシステムを使用できます。デバッグメッセージを表示するには、snmpdコマンドラインで-DALLオプションを追加します。

+0

Andrew、私のinit_x()がsnmpdにコンパイルされていないようです。しかし、私は./configure --with-mib-modules = "myMib"を使いました。私のinit_x()がsnmpdにコンパイルされていることを確認する方法を知っていますか? – user195678

+0

私は自分のMIBをnetSnmpExamplesに添付しています。私は私のOIDとしてnetSnmpExamples.5を使用しています。これが問題かどうかは分かりません。 – user195678

0

ldd私のケースでは、snmpdは標準のUbuntu libnetsnmpmibs.soと動的にリンクされていましたが、同じチュートリアルに従っていましたが、私はカスタムMIBサポートを取得しませんでした。

修復されたダイナミックリンクのものとすべてが機能しました!

1

エージェントをビルドディレクトリから起動してください。 net-snmp-x.x.x/agent。

./snmpd -f -L -d -c /usr/local/etc/snmpd.conf 

他のすべてのSNMPエージェントを停止します。私の場合は

私は

snmpd -f -Le -d -c snmpd.conf & 

このコマンドを実行する場合は、プリインストールされているSNMPデーモンを起動します。

0

のsnmpd.conf

view systemonly included .1.3.6.1.4.1.8072.2.4.1.1.1 
関連する問題