我需要通过 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]#