首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ods的RRDtool数据库数据转换为SNMP计数器值

将ods的RRDtool数据库数据转换为SNMP计数器值
EN

Stack Overflow用户
提问于 2017-01-05 21:37:54
回答 1查看 214关注 0票数 0

从网络设备读取RRDTool流量数据,并定期更新SNMP数据库。设备具有非常低的网络负载(实际上只有OSPF加上SNMP本身的数据包),但从RRDTool数据库创建的图形显示数百Mbps。在调查RDDTool数据库文件发现时,与推送到数据库中的SNMP计数值相比,它包含了奇怪的值。'traf1‘和'traf2’数据源类型的格式为计数器。我做错了什么?

代码语言:javascript
复制
C:\>rrdtool.exe info "Z:\rrdfiles\ubnt\actual\10.12.101.42.rrd"
filename = "Z:\rrdfiles\ubnt\actual\10.12.101.42.rrd"
rrd_version = "0003"
step = 300
last_update = 1483622829
header_size = 8028
ds[min].index = 0
ds[min].type = "GAUGE"
ds[min].minimal_heartbeat = 600
ds[min].min = NaN
ds[min].max = 2,0000000000e+001
ds[min].last_ds = "1"
ds[min].value = 1,2980500000e+002
ds[min].unknown_sec = 0
ds[avg].index = 1
ds[avg].type = "GAUGE"
ds[avg].minimal_heartbeat = 600
ds[avg].min = NaN
ds[avg].max = 1,0000000000e+002
ds[avg].last_ds = "1"
ds[avg].value = 1,2980500000e+002
ds[avg].unknown_sec = 0
ds[max].index = 2
ds[max].type = "GAUGE"
ds[max].minimal_heartbeat = 600
ds[max].min = NaN
ds[max].max = 2,0000000000e+002
ds[max].last_ds = "3"
ds[max].value = 2,8908700000e+002
ds[max].unknown_sec = 0
ds[loss].index = 3
ds[loss].type = "GAUGE"
ds[loss].minimal_heartbeat = 600
ds[loss].min = NaN
ds[loss].max = 1,0100000000e+002
ds[loss].last_ds = "0"
ds[loss].value = 0,0000000000e+000
ds[loss].unknown_sec = 0
ds[uptime].index = 4
ds[uptime].type = "GAUGE"
ds[uptime].minimal_heartbeat = 600
ds[uptime].min = NaN
ds[uptime].max = NaN
ds[uptime].last_ds = "7"
ds[uptime].value = 9,0863500000e+002
ds[uptime].unknown_sec = 0
ds[traf1].index = 5
ds[traf1].type = "COUNTER"
ds[traf1].minimal_heartbeat = 600
ds[traf1].min = NaN
ds[traf1].max = 1,0000000000e+009
ds[traf1].last_ds = "1520759978"
ds[traf1].value = 1,3889824419e+009
ds[traf1].unknown_sec = 0
ds[traf2].index = 6
ds[traf2].type = "COUNTER"
ds[traf2].minimal_heartbeat = 600
ds[traf2].min = NaN
ds[traf2].max = 1,0000000000e+009
ds[traf2].last_ds = "15790760575"
ds[traf2].value = 1,5510842185e+010
ds[traf2].unknown_sec = 0
ds[rssi1].index = 7
ds[rssi1].type = "GAUGE"
ds[rssi1].minimal_heartbeat = 600
ds[rssi1].min = NaN
ds[rssi1].max = 1,0000000000e+002
ds[rssi1].last_ds = "46"
ds[rssi1].value = 3,6634860000e+003
ds[rssi1].unknown_sec = 50
ds[rssi2].index = 8
ds[rssi2].type = "GAUGE"
ds[rssi2].minimal_heartbeat = 600
ds[rssi2].min = NaN
ds[rssi2].max = 1,0000000000e+002
ds[rssi2].last_ds = "46"
ds[rssi2].value = 3,6634860000e+003
ds[rssi2].unknown_sec = 50
ds[signal].index = 9
ds[signal].type = "GAUGE"
ds[signal].minimal_heartbeat = 600
ds[signal].min = NaN
ds[signal].max = 1,0000000000e+002
ds[signal].last_ds = "-46"
ds[signal].value = -3,6634860000e+003
ds[signal].unknown_sec = 0
ds[rssi].index = 10
ds[rssi].type = "GAUGE"
ds[rssi].minimal_heartbeat = 600
ds[rssi].min = NaN
ds[rssi].max = 1,0000000000e+002
ds[rssi].last_ds = "50"
ds[rssi].value = 3,9820500000e+003
ds[rssi].unknown_sec = 0
ds[ccq].index = 11
ds[ccq].type = "GAUGE"
ds[ccq].minimal_heartbeat = 600
ds[ccq].min = NaN
ds[ccq].max = 1,0000000000e+002
ds[ccq].last_ds = "33"
ds[ccq].value = 2,6281530000e+003
ds[ccq].unknown_sec = 0
ds[noisef].index = 12
ds[noisef].type = "GAUGE"
ds[noisef].minimal_heartbeat = 600
ds[noisef].min = NaN
ds[noisef].max = 1,0000000000e+002
ds[noisef].last_ds = "-87"
ds[noisef].value = -6,9287670000e+003
ds[noisef].unknown_sec = 0
ds[txrate].index = 13
ds[txrate].type = "GAUGE"
ds[txrate].minimal_heartbeat = 600
ds[txrate].min = NaN
ds[txrate].max = 1,0000000000e+003
ds[txrate].last_ds = "173"
ds[txrate].value = 1,3777893000e+004
ds[txrate].unknown_sec = 0
ds[rxrate].index = 14
ds[rxrate].type = "GAUGE"
ds[rxrate].minimal_heartbeat = 600
ds[rxrate].min = NaN
ds[rxrate].max = 1,0000000000e+003
ds[rxrate].last_ds = "173"
ds[rxrate].value = 1,3777893000e+004
ds[rxrate].unknown_sec = 0
ds[cinr].index = 15
ds[cinr].type = "GAUGE"
ds[cinr].minimal_heartbeat = 600
ds[cinr].min = NaN
ds[cinr].max = 3,0000000000e+001
ds[cinr].last_ds = "30"
ds[cinr].value = 2,3892300000e+003
ds[cinr].unknown_sec = 50
rra[0].cf = "AVERAGE"
rra[0].rows = 105120
rra[0].cur_row = 65786
rra[0].pdp_per_row = 1
rra[0].xff = 0,0000000000e+000
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
rra[0].cdp_prep[2].value = NaN
rra[0].cdp_prep[2].unknown_datapoints = 0
rra[0].cdp_prep[3].value = NaN
rra[0].cdp_prep[3].unknown_datapoints = 0
rra[0].cdp_prep[4].value = NaN
rra[0].cdp_prep[4].unknown_datapoints = 0
rra[0].cdp_prep[5].value = NaN
rra[0].cdp_prep[5].unknown_datapoints = 0
rra[0].cdp_prep[6].value = NaN
rra[0].cdp_prep[6].unknown_datapoints = 0
rra[0].cdp_prep[7].value = NaN
rra[0].cdp_prep[7].unknown_datapoints = 0
rra[0].cdp_prep[8].value = NaN
rra[0].cdp_prep[8].unknown_datapoints = 0
rra[0].cdp_prep[9].value = NaN
rra[0].cdp_prep[9].unknown_datapoints = 0
rra[0].cdp_prep[10].value = NaN
rra[0].cdp_prep[10].unknown_datapoints = 0
rra[0].cdp_prep[11].value = NaN
rra[0].cdp_prep[11].unknown_datapoints = 0
rra[0].cdp_prep[12].value = NaN
rra[0].cdp_prep[12].unknown_datapoints = 0
rra[0].cdp_prep[13].value = NaN
rra[0].cdp_prep[13].unknown_datapoints = 0
rra[0].cdp_prep[14].value = NaN
rra[0].cdp_prep[14].unknown_datapoints = 0
rra[0].cdp_prep[15].value = NaN
rra[0].cdp_prep[15].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 1051200
rra[1].cur_row = 39803
rra[1].pdp_per_row = 5
rra[1].xff = 0,0000000000e+000
rra[1].cdp_prep[0].value = 4,0000000000e+000
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[1].cdp_prep[1].value = 6,7364766667e+000
rra[1].cdp_prep[1].unknown_datapoints = 0
rra[1].cdp_prep[2].value = 1,7704723333e+001
rra[1].cdp_prep[2].unknown_datapoints = 0
rra[1].cdp_prep[3].value = 0,0000000000e+000
rra[1].cdp_prep[3].unknown_datapoints = 0
rra[1].cdp_prep[4].value = 2,8000000000e+001
rra[1].cdp_prep[4].unknown_datapoints = 0
rra[1].cdp_prep[5].value = 2,8633496716e+007
rra[1].cdp_prep[5].unknown_datapoints = 0
rra[1].cdp_prep[6].value = 2,3707567836e+008
rra[1].cdp_prep[6].unknown_datapoints = 0
rra[1].cdp_prep[7].value = 8,9847846153e+001
rra[1].cdp_prep[7].unknown_datapoints = 2
rra[1].cdp_prep[8].value = 9,0845644557e+001
rra[1].cdp_prep[8].unknown_datapoints = 2
rra[1].cdp_prep[9].value = -2,4966400000e+001
rra[1].cdp_prep[9].unknown_datapoints = 0
rra[1].cdp_prep[10].value = 2,6028800000e+001
rra[1].cdp_prep[10].unknown_datapoints = 0
rra[1].cdp_prep[11].value = 1,7529600000e+001
rra[1].cdp_prep[11].unknown_datapoints = 0
rra[1].cdp_prep[12].value = -4,5948513333e+001
rra[1].cdp_prep[12].unknown_datapoints = 0
rra[1].cdp_prep[13].value = 9,1897600000e+001
rra[1].cdp_prep[13].unknown_datapoints = 0
rra[1].cdp_prep[14].value = 9,1897600000e+001
rra[1].cdp_prep[14].unknown_datapoints = 0
rra[1].cdp_prep[15].value = 5,8899743702e+001
rra[1].cdp_prep[15].unknown_datapoints = 2
rra[2].cf = "AVERAGE"
rra[2].rows = 105120
rra[2].cur_row = 21504
rra[2].pdp_per_row = 60
rra[2].xff = 0,0000000000e+000
rra[2].cdp_prep[0].value = 2,9000000000e+001
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[2].cdp_prep[1].value = 4,8360020000e+001
rra[2].cdp_prep[1].unknown_datapoints = 0
rra[2].cdp_prep[2].value = 1,0648201333e+002
rra[2].cdp_prep[2].unknown_datapoints = 0
rra[2].cdp_prep[3].value = 0,0000000000e+000
rra[2].cdp_prep[3].unknown_datapoints = 0
rra[2].cdp_prep[4].value = 2,0300000000e+002
rra[2].cdp_prep[4].unknown_datapoints = 0
rra[2].cdp_prep[5].value = 2,0276988858e+008
rra[2].cdp_prep[5].unknown_datapoints = 0
rra[2].cdp_prep[6].value = 1,6192898195e+009
rra[2].cdp_prep[6].unknown_datapoints = 0
rra[2].cdp_prep[7].value = 6,3192685679e+002
rra[2].cdp_prep[7].unknown_datapoints = 15
rra[2].cdp_prep[8].value = 6,3690843755e+002
rra[2].cdp_prep[8].unknown_datapoints = 15
rra[2].cdp_prep[9].value = -1,7221466000e+002
rra[2].cdp_prep[9].unknown_datapoints = 0
rra[2].cdp_prep[10].value = 1,7956678000e+002
rra[2].cdp_prep[10].unknown_datapoints = 0
rra[2].cdp_prep[11].value = 1,2092487000e+002
rra[2].cdp_prep[11].unknown_datapoints = 0
rra[2].cdp_prep[12].value = -3,1694801333e+002
rra[2].cdp_prep[12].unknown_datapoints = 0
rra[2].cdp_prep[13].value = 6,2624983000e+002
rra[2].cdp_prep[13].unknown_datapoints = 0
rra[2].cdp_prep[14].value = 6,2943175000e+002
rra[2].cdp_prep[14].unknown_datapoints = 0
rra[2].cdp_prep[15].value = 3,8770676286e+002
rra[2].cdp_prep[15].unknown_datapoints = 16

导出的RRDTool数据:

代码语言:javascript
复制
C:\>rrdtool.exe xport "Z:\rrdfiles\ubnt\actual\10.12.101.42.rrd"   
<xport>
      <meta>
        <start>1483613100</start>
        <step>300</step>
        <end>1483613100</end>
        <rows>13</rows>
        <columns>2</columns>
        <legend>
          <entry>tra1</entry>
          <entry>traf2</entry>
        </legend>
      </meta>
      <data>
        <row><t>1483613100</t><v>2.2345456150e+006</v><v>2.2345456150e+006</v></row>
        <row><t>1483613400</t><v>1.2072292921e+007</v><v>1.2072292921e+007</v></row>
        <row><t>1483613700</t><v>2.2444571321e+006</v><v>2.2444571321e+006</v></row>
        <row><t>1483614000</t><v>1.1981343532e+007</v><v>1.1981343532e+007</v></row>
        <row><t>1483614300</t><v>2.3354061100e+006</v><v>2.3354061100e+006</v></row>
        <row><t>1483614600</t><v>1.2097984951e+007</v><v>1.2097984951e+007</v></row>
        <row><t>1483614900</t><v>2.2187643548e+006</v><v>2.2187643548e+006</v></row>
        <row><t>1483615200</t><v>1.2097093297e+007</v><v>1.2097093297e+007</v></row>
        <row><t>1483615500</t><v>2.2196560491e+006</v><v>2.2196560491e+006</v></row>
        <row><t>1483615800</t><v>1.2104058787e+007</v><v>1.2104058787e+007</v></row>
        <row><t>1483616100</t><v>2.2126911123e+006</v><v>2.2126911123e+006</v></row>
        <row><t>1483616400</t><v>1.2066756766e+007</v><v>1.2066756766e+007</v></row>
        <row><t>1483616700</t><v>NaN</v><v>NaN</v></row>
      </data>
    </xport>

从设备读取SNMP本身的数据(时间戳、trafx、trafy、正常运行时间):

代码语言:javascript
复制
1483612976
.1.3.6.1.2.1.2.2.1.16.10 130854869
.1.3.6.1.2.1.2.2.1.10.10 275599423
.1.3.6.1.2.1.1.3.0 7:13:21:30.00
1483613276
.1.3.6.1.2.1.2.2.1.16.10 130906048
.1.3.6.1.2.1.2.2.1.10.10 275757426
.1.3.6.1.2.1.1.3.0 7:13:26:30.00
1483613576
.1.3.6.1.2.1.2.2.1.16.10 130912462
.1.3.6.1.2.1.2.2.1.10.10 275874209
.1.3.6.1.2.1.1.3.0 7:13:31:30.00
1483613876
.1.3.6.1.2.1.2.2.1.16.10 130963695
.1.3.6.1.2.1.2.2.1.10.10 276030574
.1.3.6.1.2.1.1.3.0 7:13:36:30.00
1483614176
.1.3.6.1.2.1.2.2.1.16.10 130970155
.1.3.6.1.2.1.2.2.1.10.10 276148573
.1.3.6.1.2.1.1.3.0 7:13:41:30.00
1483614476
.1.3.6.1.2.1.2.2.1.16.10 131021246
.1.3.6.1.2.1.2.2.1.10.10 276304600
.1.3.6.1.2.1.1.3.0 7:13:46:30.00
1483614776
.1.3.6.1.2.1.2.2.1.16.10 131027614
.1.3.6.1.2.1.2.2.1.10.10 276418563
.1.3.6.1.2.1.1.3.0 7:13:51:30.00
1483615076
.1.3.6.1.2.1.2.2.1.16.10 131078755
.1.3.6.1.2.1.2.2.1.10.10 276571254
.1.3.6.1.2.1.1.3.0 7:13:56:30.00
1483615376
.1.3.6.1.2.1.2.2.1.16.10 131085169
.1.3.6.1.2.1.2.2.1.10.10 276684807
.1.3.6.1.2.1.1.3.0 7:14:01:30.00
1483615676
.1.3.6.1.2.1.2.2.1.16.10 131136260
.1.3.6.1.2.1.2.2.1.10.10 276842586
.1.3.6.1.2.1.1.3.0 7:14:06:30.00
1483615976
.1.3.6.1.2.1.2.2.1.16.10 131142812
.1.3.6.1.2.1.2.2.1.10.10 276957811
.1.3.6.1.2.1.1.3.0 7:14:11:30.00
1483616276
.1.3.6.1.2.1.2.2.1.16.10 131193949
.1.3.6.1.2.1.2.2.1.10.10 277112644
.1.3.6.1.2.1.1.3.0 7:14:16:30.00
EN

回答 1

Stack Overflow用户

发布于 2017-01-06 03:45:09

这里有两个因素在起作用:速率转换数据标准化

由于您的类型为COUNTER,因此会发生Rate Conversion。如果数据点x1到达时间t1,这将通过简单计算(x1 - x0)/(t1 - t0)将存储的值转换为速率,依此类推。因为大多数被监视的数据都在增加网络字节计数器,并且您希望看到吞吐量的图表,所以这是有意义的;但是,如果您想要用图表表示实际的值,请使用数据类型GAUGE。为了提高效率,RRDTool在数据存储时进行速率计算,而不是在显示时。

数据规范化比较难理解。这会调整存储的值,使它们精确地适应时间窗口边界。RRDTool始终将数据精确地存储在区间边界中,但是由于数据可能在任何时候进入,因此需要使用线性插值来调整这些点以适应这一点。这些调整不会影响总体合计和汇总,对于较大的值通常不会引起注意,但如果使用GAUGE绘制较低的值,则可能会导致混淆。

关于这些的最好的阅读位置是在Alex著名的教程here中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41486537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档