可以使用 snmpget 从 table 项中检索一个值
Possible to use snmpget to retrieve one value from table item
伙计们,正在编写脚本以检索 table 对象中的特定 MIB,例如
ltmRouteDomainStatTable OBJECT-TYPE
SYNTAX SEQUENCE OF LtmRouteDomainStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing statistic information of route domains."
LtmRouteDomainStatEntry ::=
SEQUENCE {
ltmRouteDomainStatName LongDisplayString,
ltmRouteDomainStatConnLimit Gauge,
ltmRouteDomainStatConnectionFlowMiss Counter64,
ltmRouteDomainStatClientPktsIn Counter64,
ltmRouteDomainStatClientBytesIn Counter64,
.....
我只想要 ltmRouteDomainStatClientPktsIn,但它似乎是不使用数字 OID 的唯一方法是获取整个 table:
snmptable -v2c -Lo -c xxxx 1.2.3.4 F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatTable
SNMP table: F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatTable
ltmRouteDomainStatName ltmRouteDomainStatConnLimit ltmRouteDomainStatConnectionFlowMiss ltmRouteDomainStatClientPktsIn ltmRouteDomainStatClientBytesIn ltmRouteDomainStatClientPktsOut ltmRouteDomainStatClientBytesOut ltmRouteDomainStatClientMaxConns ltmRouteDomainStatClientTotConns ltmRouteDomainStatClientCurConns ltmRouteDomainStatClientEvictedConns ltmRouteDomainStatClientSlowKilled ltmRouteDomainStatServerPktsIn ltmRouteDomainStatServerBytesIn ltmRouteDomainStatServerPktsOut ltmRouteDomainStatServerBytesOut ltmRouteDomainStatServerMaxConns ltmRouteDomainStatServerTotConns ltmRouteDomainStatServerCurConns ltmRouteDomainStatServerEvictedConns ltmRouteDomainStatServerSlowKilled
/Common/0 0 0 162 12312 0 0 60 60 0 0 0 5135356 570128703 5106503 204356528 60 60 0 0 0
我想也许我可以将索引添加到 snmpget 查询中,但没有成功,例如
snmpget -v2c -Lo -c xxxx 1.2.3.4 F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn.'/Common/0'
我可以解析 snmptable 输出以获得我想要的单个值...有更简单的方法吗?
是的,您可以通过几种方式做您想做的事:
- 如果 table 只有一行,执行
snmpgetnext .... F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn
- 将您的行的索引字符串转换为子 ID 列表,同时考虑
考虑可变长度八位字节字符串编码。如果你走
table 使用 snmpwalk 您应该获得该格式的索引值。然后使用
snmpget ... F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn.INDICES
其中 INDICES 是子 ID 列表。
伙计们,正在编写脚本以检索 table 对象中的特定 MIB,例如
ltmRouteDomainStatTable OBJECT-TYPE
SYNTAX SEQUENCE OF LtmRouteDomainStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing statistic information of route domains."
LtmRouteDomainStatEntry ::=
SEQUENCE {
ltmRouteDomainStatName LongDisplayString,
ltmRouteDomainStatConnLimit Gauge,
ltmRouteDomainStatConnectionFlowMiss Counter64,
ltmRouteDomainStatClientPktsIn Counter64,
ltmRouteDomainStatClientBytesIn Counter64,
.....
我只想要 ltmRouteDomainStatClientPktsIn,但它似乎是不使用数字 OID 的唯一方法是获取整个 table:
snmptable -v2c -Lo -c xxxx 1.2.3.4 F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatTable
SNMP table: F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatTable
ltmRouteDomainStatName ltmRouteDomainStatConnLimit ltmRouteDomainStatConnectionFlowMiss ltmRouteDomainStatClientPktsIn ltmRouteDomainStatClientBytesIn ltmRouteDomainStatClientPktsOut ltmRouteDomainStatClientBytesOut ltmRouteDomainStatClientMaxConns ltmRouteDomainStatClientTotConns ltmRouteDomainStatClientCurConns ltmRouteDomainStatClientEvictedConns ltmRouteDomainStatClientSlowKilled ltmRouteDomainStatServerPktsIn ltmRouteDomainStatServerBytesIn ltmRouteDomainStatServerPktsOut ltmRouteDomainStatServerBytesOut ltmRouteDomainStatServerMaxConns ltmRouteDomainStatServerTotConns ltmRouteDomainStatServerCurConns ltmRouteDomainStatServerEvictedConns ltmRouteDomainStatServerSlowKilled
/Common/0 0 0 162 12312 0 0 60 60 0 0 0 5135356 570128703 5106503 204356528 60 60 0 0 0
我想也许我可以将索引添加到 snmpget 查询中,但没有成功,例如
snmpget -v2c -Lo -c xxxx 1.2.3.4 F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn.'/Common/0'
我可以解析 snmptable 输出以获得我想要的单个值...有更简单的方法吗?
是的,您可以通过几种方式做您想做的事:
- 如果 table 只有一行,执行
snmpgetnext .... F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn
- 将您的行的索引字符串转换为子 ID 列表,同时考虑 考虑可变长度八位字节字符串编码。如果你走 table 使用 snmpwalk 您应该获得该格式的索引值。然后使用
snmpget ... F5-BIGIP-LOCAL-MIB::ltmRouteDomainStatClientPktsIn.INDICES
其中 INDICES 是子 ID 列表。