0

我需要通过 SNMP 发送自定义数据,为此我使用 Python 中的脚本来获取数据并解析它。这是脚本的输出:

# ./SnmpGrafico.py
get
.1.3.6.1.4.1.2021.255.2.2.11471
.1.3.6.1.4.1.2021.255.2.2.11471
Counter64
57900010775

这是我使用 SNMP 的输出,其中 OID 指向此脚本:

# snmpget -v 2c -c cocacola 127.0.0.1 .1.3.6.1.4.1.2021.255.2.2.11471
UCD-SNMP-MIB::ucdavis.255.2.2.11471 = Counter32: 4294967295

和 SNMP 配置:

pass_persist .1.3.6.1.4.1.2021.255 /usr/local/bin/python3.3 /testRRD/SnmpGrafico.py

为什么 SNMP 将我的 Counter64 解析为 Counter32 并丢失原始值?在这种情况下,原始值为“57900010775”和 SNMP 响应“4294967295”。

谢谢!

更新:

转储 SNMP

[root@wsRRDint2 testRRD]# snmpget -v 2c -c cocacola 127.0.0.1 .1.3.6.1.4.1.2021.255.2.2.11471 -d

Sending 50 bytes to UDP: [127.0.0.1]:161
0000: 30 30 02 01  01 04 08 63  6F 63 61 63  6F 6C 61 A0    00.....cocacola.
0016: 21 02 04 7C  A6 4B 26 02  01 00 02 01  00 30 13 30    !..|.K&......0.0
0032: 11 06 0D 2B  06 01 04 01  8F 65 81 7F  02 02 D9 4F    ...+.....e.....O
0048: 05 00                                                 ..


Received 55 bytes from UDP: [127.0.0.1]:161
0000: 30 35 02 01  01 04 08 63  6F 63 61 63  6F 6C 61 A2    05.....cocacola.
0016: 26 02 04 7C  A6 4B 26 02  01 00 02 01  00 30 18 30    &..|.K&......0.0
0032: 16 06 0D 2B  06 01 04 01  8F 65 81 7F  02 02 D9 4F    ...+.....e.....O
0048: 41 05 00 FF  FF FF FF                                 A......

UCD-SNMP-MIB::ucdavis.255.2.2.11471 = Counter32: 4294967295
[root@wsRRDint2 testRRD]#
4

1 回答 1

1

最后几个字节确实显示Counter32为它的类型字节是0x41. 因此 NET-SNMP 没有任何问题,您必须查看代理文档以进一步挖掘。

于 2015-08-11T00:32:02.833 回答