1

net-snmp でサポートされている agentX を使用する snmp サブエージェントを作成しようとしています。最初に、net-snmp FAQ のサンプル コードを使用しました。

http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_Subagent

サンプル コード ( example-demon.c,nstAgentSubagentObject.c,nstAgentSubagentObject.h ) から、agentX を使用して snmpget と snmpset を実行できるサブエージェントを構築します。

私の質問は: nstAgentSubagentObject.cのコードから、次のような多くのトレース コードがあります。

DEBUGMSGTL(("nstAgentSubagentObject",
                "Initializing the nstAgentSubagentObject module\n"));

しかし、私はどこにもログを見ることができません。

でsnmpd(snmpの鬼)を起動してみました snmpd -f -DnstAgentSubagentObject -Lf /tmp/snmp.log

しかし、私はまだログを見ることができません。DEBUGMSGTL のログを見る方法を教えてください。

4

3 に答える 3

2

フラグを設定するだけです:

-Dverbose

または、すべてのログを表示する場合:

-Dall
于 2012-02-29T19:00:15.490 に答える
1

snmpd開始する代わりに、開始-D nstAgentSubagentObject時にそのコマンドライン オプションをサブエージェントに渡します。

チュートリアルでは、次のコマンドでサブエージェントを開始することを提案しています。

% ./mysubagent &

より多くのデバッグ メッセージを有効にするには、代わりに次のコマンドで開始してみてください。

% ./mysubagent -D nstAgentSubagentObject

私の記憶が正しければ、デバッグ出力がコンソールに出力されるはずです。-Lファイルに書きたい場合は、オプションと組み合わせることができます。

于 2011-11-10T03:29:50.367 に答える
1

参考までに、以下を snmp.conf ファイルに入れて、そこでオプションをいじることもできます。

debugTokens nstAgentSubagentObject
doDebugging 1

しかし、もう 1 つの答えは的を射ています。サブエージェントにある、コードがヒットする場所のデバッグをオンにする必要があります (snmp.conf ファイルは両方で読み取られます)。

于 2011-11-11T16:06:05.627 に答える