每个端口2000交换机snmp

每个端口2000交换机snmp,snmp,bulk,device,Snmp,Bulk,Device,我正在运行一个应用程序,它每5分钟从2000多个交换机收集snmp数据,向上八位字节、向下八位字节、端口状态,并根据端口状态在网页上以绿色或红色显示它们,当我第一次添加设备时,我会遍历它获取端口索引将其保存到db,每隔五分钟,我就从db获取端口索引,并根据oid运行它,然后逐个端口获取数据端口,并将它们保存到mysql 大约有8个oid和2000多个设备,这些设备串行运行所需的时间更长。直到最后一个oid完成后,才会执行下一个oid。我听说过snmpbulkget或snmptable,但不理解它

我正在运行一个应用程序,它每5分钟从2000多个交换机收集snmp数据,向上八位字节、向下八位字节、端口状态,并根据端口状态在网页上以绿色或红色显示它们,当我第一次添加设备时,我会遍历它获取端口索引将其保存到db,每隔五分钟,我就从db获取端口索引,并根据oid运行它,然后逐个端口获取数据端口,并将它们保存到mysql

大约有8个oid和2000多个设备,这些设备串行运行所需的时间更长。直到最后一个oid完成后,才会执行下一个oid。我听说过snmpbulkget或snmptable,但不理解它们

我想要一种替代方法,可以减少网络流量并批量获取表的数据,而不是一个接一个地为每个oid执行查询snmpget,这通常会消除五分钟的差异

我向交换机发送一个表请求,它返回所有端口状态的值表

它将减少对下一个呼叫的等待,并加快进程,还将减少网络流量

可能吗

你能为我的senario改进一下吗?在我的senario中,对于许多接口计数器,每5分钟查询的设备太多了


感谢

SNMP getbulk命令允许您指定多个OID和一个maxrepetitions参数,以限制代理在回复中发送的VARBIND数量。它非常适合在您描述的情况下优化性能。当然有一个陷阱:

SNMP getbulk在SNMP v1中不可用 设置正确的maxrepetitions参数可能很棘手-如果回复中必须包含一定数量的varbind,则某些代理拒绝发送回复