我们主要尝试使用 SNMP 来监控我们的服务器。由于性能原因,我们将其从单个请求更改为 snmp-bulk-requests(如 SNMP v2c 中允许的那样)。
理论上(至少据我所知)应该可以在单个批量请求中请求多个分支/值,因此所需的 tcp 会话数量将是最少的。
我们目前为此使用 CentOS 5 - 所讨论的高级命令是snmpbulkwalk
- 但这似乎只能一次请求一个分支(即子树)。
我在理论上是错的,还是有一个高级命令可以做我想做的事?
答案1
该命令snmpbulkget
允许您指定任意的、非连续的 OID 请求。正确设置非重复次数和最大重复次数可能需要一些实验。
这里有一个很好的例子:http://docstore.mik.ua/orelly/networking_2ndEd/snmp/ch02_06.htm
答案2
你说得对。snmpbulkwalk
网络效率更高。然而,SNMP通常不使用TCP;它使用UDP。
SNMP 批量请求不在 SNMPv1 规范中,因此请确保您请求的 SNMP 代理至少为 SNMPv2c 或更高版本。
如果需要,您可以将其包装snmpbulkwalk
在脚本中以帮助完成批量请求作业。
如果您想要监视大量信息,您可能需要考虑使用RRDTool
成熟的监视系统,例如Nagios
.