我希望使用MRTG和rrdtool xport监控+导出/导出流量数据到XML。我有几个问题:
导出的XML在元部分中具有相同的开始和结束时间戳。我指定--start 1429862400 --end 1429894800,输出值从1429862700开始,到1429886100结束,我也得到了不少NaN。
我将ds0和ds1映射到我的输入/输出变量,但我实际上并不确定在哪里定义ds' s。如何将变量映射到网络进出流量? ds设备在哪里配置?
我正在跑步
rrdtool xport\
DEF:out_bytes=localhost_2.rrd:ds0:AVERAGEDEF:in_bytes\
=localhost_2.rrd:ds1:AVERAGE CDEF:io_bytes=out_bytes,in_bytes,+\
XPORT:in_bytes:outbytes XPORT:out_bytes:inbytes XPORT:io_bytes:iobytes\
--enumds --start 1429862400 --end 1429894800
导出。
这是我的mrtg.cfg
WorkDir: /var/www/mrtg/graph
WriteExpires: Yes
Title[^]: Traffic Analysis for
EnableIPv6: no
Target[localhost_2]: 2:public@127.0.0.1:
SetEnv[localhost_2]: MRTG_INT_IP="No Ip" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 1250000
Title[localhost_2]: Traffic Analysis for 2 -- SMDSP01
XSize[localhost_2]: 256
YSize[localhost_2]: 64
XScale[localhost_2]: 0.65
YScale[localhost_2]: 0.6
Unscaled[localhost_2]: d
WithPeak[localhost_2]: d
这里有一个剪辑输出
<?xml version="1.0" encoding="UTF-8"?> <xport> <meta>
<start>1429862700</start>
<step>300</step>
<end>1429862700</end>
<rows>109</rows>
<columns>3</columns>
<legend>
<entry>outbytes</entry>
<entry>inbytes</entry>
<entry>iobytes</entry>
</legend> </meta> <data>
<row>
<t>1429862700</t>
<v0>7.5489722222e+00</v0>
<v1>1.4522986944e+05</v1>
<v2>1.4523741842e+05</v2>
</row>
<row>
<t>1429863000</t>
<v0>9.3254770432e+00</v0>
<v1>1.6219456095e+05</v1>
<v2>1.6220388643e+05</v2>
</row>
<row>
<t>1429863300</t>
<v0>6.4311896235e+00</v0>
<v1>1.6358109508e+05</v1>
<v2>1.6358752627e+05</v2>
</row>
<row>
<t>1429863600</t>
<v0>9.8945000000e+00</v0>
<v1>4.6888782408e+05</v1>
<v2>4.6889771858e+05</v2>
</row>
<row>
<t>1429863900</t>
<v0>5.6088333333e+00</v0>
<v1>4.2072387378e+05</v1>
<v2>4.2072948261e+05</v2>
</row>
<row>
<t>1429864200</t>
<v0>2.0383366480e+01</v0>
<v1>2.5505514117e+05</v1>
<v2>2.5507552453e+05</v2>
</row>
<row>
<t>1429864500</t>
<v0>1.2132332724e+03</v0>
<v1>2.1026807079e+06</v1>
<v2>2.1038939412e+06</v2>
</row>
<row>
<t>1429864800</t>
<v0>2.3604750000e+01</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429865100</t>
<v0>6.3642958611e+03</v0>
<v1>1.1198971143e+07</v1>
<v2>1.1205335438e+07</v2>
</row>
<row>
<t>1429865400</t>
<v0>1.5586544194e+04</v0>
<v1>8.5607161284e+06</v1>
<v2>8.5763026726e+06</v2>
</row>
<row>
<t>1429865700</t>
<v0>2.4014277778e+01</v0>
<v1>3.3303833329e+06</v1>
<v2>3.3304073472e+06</v2>
</row>
...
<row>
<t>1429892100</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429892400</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429892700</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429893000</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429893300</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429893600</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429893900</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429894200</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429894500</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429894800</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row>
<row>
<t>1429895100</t>
<v0>NaN</v0>
<v1>NaN</v1>
<v2>NaN</v2>
</row> </data> </xport>
感谢您的帮助!
答案 0 :(得分:0)
首先,XML输出中的无效<end>
标记是RRDTool中的错误。您没有说明您使用的是哪个版本,但如果您没有使用最新版本,请升级。如果您使用的是最新版本,请报告错误:)
由于fenceposting,输出时间点略微偏离您请求的窗口。您正在指定数据点,并正在导出包含它们的RRA(将在稍后一步结束)。这有点违反直觉,但我认为这是设计上的。
您正在从RRD DS中定义变量DEF:
DEF:out_bytes=localhost_2.rrd:ds0:AVERAGE
DEF:in_bytes=localhost_2.rrd:ds1:AVERAGE
MRTG生成的RRD文件将始终只有两个DS - 名为ds0
和ds1
。虽然RRDTool可以支持更多具有各种名称的DS,但您无法更改MRTG生成的RRD文件中的名称,也不能在不破坏MRTG的情况下添加或删除DS。如果您想拥有更多DS,唯一的方法是添加新的MRTG目标 - 这将创建一个新的RRD文件,DSs&#39; ds0&#39;和&#39; ds1&#39; - 然后将其作为附加的两个DEF
行添加到您的Xport请求中。
NaN是底层RRA没有有效数据的地方。这很可能是因为没有为该时间窗口收集(足够)数据,或者收集的数据无效。相应的MRTG图表可能也没有显示任何内容。另一种可能性是选择了错误的RRA,但这不太可能,因为您的时间窗口仅为9小时,非常适合MRTG生成的默认1天高粒度RRA。
如果您的值有问题,那么请确认它们在RRD中没有错误--xport只输出数据库中的内容。您是否期望以比特而非字节输出(在这种情况下乘以8)?您的值是否大约为140Mbps(IE 18MBps),但您是通过SNMPv1查询,在这种情况下MRTG无法轮询数据?在这种情况下,使用SNMPv2和MRTG来获取正确的数据。遗憾的是,您没有详细说明数据是如何“发生故障”的。所以我只能推测。