"No such object available on this agent at this 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
後者は、そのOIDの下にあるすべてのMIBリーフのリストを提供します。これには(あなたの場合).0
ノードが含まれます。
それが失敗した場合は、コードがコンパイルされ、正しく実行されていることを確認する価値があります。まず、ステップの最後にある詳細をチェックし./configure
て、概要に mib が含まれていることを確認します。例えば。(./configure --with-mib-modules="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
---------------------------------------------------------
前者の場合nm
、snmpd 実行可能 agent/.libs/libnetsnmpmibs.so
ファイルを実行init_X()
して、MIB に対応する関数が存在することを確認できます。init_nstAgentModuleObject()
関数が存在することを確認することも価値があります。make install
テストする前に実行している場合ldd
は、使用されている libnetsnmpmibs.so ライブラリがビルドしたばかりのものであり、パスの問題がないことを ( を使用して) 確認する価値があります。
DEBUGMSGTL()
関数内に呼び出しを追加することで、組み込みのデバッグ メッセージング システムを使用できますinit_X()
。デバッグ メッセージを表示するには-DALL
、snmpd コマンド ラインにオプションを追加します。