我正在运行一个应用程序,每隔5分钟从超过2000个交换机收集snmp数据,upoctets,downoctects,端口状态,并在图表中显示它们,并在网页上显示绿色或红色的端口状态,第一次当我添加设备时,我遍历它获取端口索引将其保存到db,每隔五分钟我从db运行它的端口索引运行它对oid执行snmpget获取数据端口并将它们保存到mysql。
有大约8个oids和超过2000个设备,这些设备连续运行的时间越长,下一个oid在最后一个oid完成之前不会被执行。我听过snmpbulkget或snmptable但是不理解它们,
我想要一种替代的方式,我可以减少网络流量并批量获取表的数据,而不是逐个执行每个oid的查询snmpget,正常地执行5分钟的差异。
我向交换机发送一个表请求,它返回所有端口状态的值表。
它将减少等待下一次呼叫的速度,加快进程也会减少网络流量。
有可能吗?
你能不能改进我的Senario,每隔5分钟就会为许多接口计数器查询数千个设备。
感谢
答案 0 :(得分:0)
SNMP getbulk命令允许您指定多个OID和一个maxrepetitions参数,该参数限制代理在回复中发送的varbinds数。它非常适合在您描述的情况下优化性能。当然有一个问题: