在基于Linux的嵌入式系统中,每个OID (在MIB文件中指定)的SNMP MIB OID值和访问类型存储在哪里?(如网络设备、机顶盒、机器控制、工业自动化)应该有内部数据库来存储所有这些OID MIB值、名称、内部访问类型。
发布于 2014-04-09 13:22:15
snmp代理通常以多种方式存储和访问数据:
1)代理的内部存储器,通常仅用于配置和监控代理本身
2)代理执行系统调用以查询本地设备/软件以查找其需要的信息。例如,当您从HOST-RESOURCES-MIB请求机器的正常运行时间时,代理将通过询问内核来确定这一点(通过API或通过文件系统等/proc )。
3)代理通过某种类似RPC的机制与其他对象进行通信。一种这样的机制是AgentX协议,它是主代理到子代理协议,其是在本地系统上使用的SNMP子集。子代理向主代理注册,指示它们想要为MIB树的某个部分提供up服务。
基本上,智能体自己知道数据的情况非常少见。它几乎总是要去向系统上的其他东西询问要报告的信息。
发布于 2014-04-09 07:13:46
一般而言,对于基于net-snmp的代理,对象定义用于生成C源文件,这些源文件最终被构建并链接到SNMP代理snmpd中。我没有阅读net-snmp的所有源代码,但我怀疑是否使用了内部数据库。
https://stackoverflow.com/questions/22934499
复制相似问题