我是SNMP的新手,谢谢你对我的支持...... 我有一个子代理的现有Perl脚本,并且在尝试运行它时出现了以下问题: 代理似乎连接到“默认”snmpd deamon,它被配置为主代理(snmpd.conf中存在“master agentx”行)。 此时,脚本会为我的MIB中的对象分配一些值。但是,当我在master-agent上执行snmpwalk或snmpget时,我得到(对于v1查询)“End of MIB”。当我对系统OID执行查询时,它可以工作......必须要破坏一些东西。
MIB已正确注册(我可以进行snmptranslate)并使用“企业”OID,其中公司用于注册他们自己的企业OID。
我一直在环顾四周,看看问题是什么,并且它认为我错过了子代理的配置文件:在site上,他们在子代理注册时添加了这条评论:
my $agent = new NetSNMP::agent(
# **makes the agent read a my_agent_name.conf file**
'Name' => "my_agent_name",
'AgentX' => 1
);
}
我的设置(我自己没有写但应该功能齐全)没有文件“my-agent_name.conf”。我确实有正确的snmpd.conf(对于master-agent),并且子代理似乎连接(如果我从snmpd.conf中删除“master agentx”行,代理会报告连接失败)。
问题是缺少的子代理配置文件,如果是,我应该放在那里?我根本无法找到关于这个主题的更多内容,而且我对SNMP的了解太少,无法使用手册页来解决这个问题。
我正在使用Ubuntu / Xubuntu进行测试。
由于
答案 0 :(得分:1)
我的设置似乎存在问题,典型的“Windows”解决方案就是诀窍:重启。重启后,代理连接正常。 我通过使用syslog文件调用“/ var / logs / syslog”,这将无法显示AgentX通知。此外,您可以在任何net-snmp应用程序的命令行上添加调试标志“-DALL”为您提供所有调试输出。
很高兴有一个类似net-snmp的开源snmp,但是人......它有一个陡峭的学习曲线。示例大多过时或不完整。该网站充斥着垃圾和不完整的文章。我最难找到一个如何构建简单代理的简单示例。 如果你是新人并且碰巧偶然发现这篇文章:尝试"ifTable" example帮助了我很多。