我遇到了写一个非常巨大的mib的问题,因为我只有一个代理连接了许多没有snmp的设备。所有设备都通过推送向代理发送相同类型的数据,然后代理将snmp陷阱发送到SNMP管理器。 Manager也将SNMP GET发送给代理。我想编写一个标准的mib,它适用于每个设备,而Manager必须只发送一些OID来获取值,而不是数百个OID。 一个非常大的mib意味着很多分支。
答案 0 :(得分:1)
子代理是一个附加的SNMP守护程序,它扩展了主代理的功能。基本上,OID子树被分配给子代理。还有一些其他扩展功能的方法。例如,Here's a nice article有关扩展Net-SNMP代理的不同方法。
文章中指出的一些差异包括:
主代理无需配置即可接受 额外的子代理。子代理向主代理注册 它想要处理的MIB模块(或其中的一部分)。
子代理与主代理分离。它可以运行 不同的身份或被集成到另一个守护进程中以导出它 内部指标,发送陷阱或允许远程配置 SNMP。
AgentX协议可以通过TCP承载。因此子代理可以运行 在外国主机或被监禁的环境中。
完全支持64位类型。也支持陷阱。
根据我的理解,您有远程设备将数据推送到代理,代理又需要能够使用SNMP陷阱和/或SNMP获取处理并将此数据返回到SNMP管理器。要记住的一件事是,SNMP代理在处理传入数据时可能会阻塞。子代理可能有助于独立完成这项工作。
关于覆盖每个设备的大量分支,可以使用表格。根据您发送的数据类型,位字段也很有用。定义的位域可用于通过一个事务在一个设备上发送大量信息。