我正在尝试编写一个使用agentX的snmp子代理,net-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的日志?
答案 0 :(得分:2)
我可以设置标志:
-Dverbose
或者如果您想查看所有日志:
-Dall
答案 1 :(得分:1)
您希望在启动时将该命令行选项传递给子代理,而不是使用snmpd
启动-D nstAgentSubagentObject
。
在教程中,它建议使用以下命令启动子代理:
% ./mysubagent &
要启用更多调试消息,请尝试使用以下命令启动它:
% ./mysubagent -D nstAgentSubagentObject
如果我没记错的话,应该将调试输出打印到控制台。如果您希望将其写入文件,可以将其与-L
选项结合使用。