发现SNMP代理功能的最佳做法是什么?
我的期望是我可以通过在mib-2.system(例如snmpwalk -v 1 -c public host
)上的GET_NEXT开始简单地遍历整个代理,但是这似乎不适用于大多数代理,它只能让你系统MIB本身,它不会继续使用其他MIB。
我的思科路由器的功能大致与我期望的一样,它遍历系统MIB,包括sysORTable,它包含许多条目。当它完成时,它从IF-MIB开始,并且可能会走遍所有可用的MIB(我说"大概"因为我的路由器开始减速然后停止并且必须重新启动!)
SNMP框架中的意图似乎是代理将通过sysIDID中的AGENT-CAPABILITIES宏的OID在sysORTable中宣传它的功能。这似乎是非常明智的,因为它不仅可以传达可用的MIB,还可以传达它们的实现方式。但是,我发现思科并没有完全遵循RFC2580,在sysORID中,他们为各种产品型号放置了包含AGENT-CAPABILITIES宏的MIB的OID。然后在sysDesc中,它们包括来自MIB的文本,用于标识特定产品的AGENT-CAPABILITIES宏的名称以及其他标识信息(例如日期)。其他代理只使用sysORID中已实现的MIB的OID。
我正在建立自己的代理商。我一直在考虑如何让我的工具做我想做的事,但我想知道我想要的是非常普遍的吗?我想知道它是否更明智,好像MIB包含大表可能是不切实际的(例如我的路由器崩溃)。对于一个简单的代理人来说,最实际的做法似乎就是走完所有可用的MIB。
答案 0 :(得分:0)
最佳做法是阅读MIB文档,而不是针对设备的原始查询,
http://pic.dhe.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.halu101%2Fcap.htm
AGENT-CAPABILITIES
是保存此类信息的标准定义实体。
答案 1 :(得分:0)
snmpd
的默认配置文件具有分配给 systemonly
社区的 public
视图,它强制执行来自任何非本地主机 IP 地址的请求。它限制您只能看到 1.3.6.1.2.1.1
和 1.3.6.1.2.1.25.1
树下的 OID。
要取消此限制,请在 /etc/snmp/snmpd.conf
中查找类似这样的行
rocommunity public default -V systemonly
删除 -V systemonly
位,然后用 snmpd
重新启动 sudo systemctl stop snmpd
。
答案 2 :(得分:-1)
您想要做的事情被称为SNMP漫步,除非您喜欢重新发明轮子或有特定需求,否则已经做了很多次here is a free one