MRTG:rrdtool xport - 导出 in/out 流量时出现问题
MRTG: rrdtool xport - Problems with exporting in/out traffic
我想使用 MRTG 和 rrdtool xport 监控并导出 in/out 流量数据到 XML。我有几个问题:
导出的 XML 在元部分中具有相同的开始和结束时间戳。我指定了 --start 1429862400 --end 1429894800,输出值从 1429862700 开始到 1429886100 结束,我也得到了很多 NaN。
我将 ds0 和 ds1 映射到我的 in/out 变量,但实际上我不确定首先在哪里定义 ds。如何将我的变量映射到网络进出流量? ds 设备配置在哪里?
- Ds1,可能是因为配置不当,产生了错误的值。
我是 运行
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>
感谢您的帮助!
首先,XML 输出中的无效 <end>
标记是 RRDTool 中的错误。您没有说您使用的是哪个版本,但如果您使用的不是最新版本,请升级。如果您使用的是最新版本,请报告错误 :)
由于 fenceposting,输出时间点与您请求的 window 略有不同。您正在指定数据点,并正在导出包含它们的 RRA(将在 1 步后结束)。这有点违反直觉,但我认为这是设计使然。
您正在从 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 文件中的名称,也不能添加或删除 DS,而不会破坏 MRTG。如果你想要更多的 DS,唯一的方法是添加一个新的 MRTG 目标——这将创建一个新的 RRD 文件,DS 为 'ds0' 和 'ds1'——然后添加这个作为额外的两条 DEF
行添加到您的 Xport 请求中。
NaN 是基础 RRA 没有有效数据的地方。这可能是因为当时 window 根本没有(足够)收集数据,或者收集的数据无效。相应的 MRTG 图表可能也不会显示任何内容。另一种可能性是选择了错误的 RRA,但这不太可能,因为您的时间 window 只有 9 小时,这正好适合 MRTG 生成的默认 1 天高粒度 RRA。
如果您的值有问题,请验证它们在 RRD 中是否已经有问题 - xport 仅输出数据库中的内容。您是否期望输出以位而不是字节为单位(在这种情况下乘以 8)?您的值是否在 140Mbps(IE 18MBps)左右,但您是通过 SNMPv1 进行查询,在这种情况下 MRTG 无法轮询数据?在这种情况下,使用带有 MRTG 的 SNMPv2 来获取正确的数据。不幸的是,您没有提供任何数据的详细信息'faulty',所以我只能推测。
我想使用 MRTG 和 rrdtool xport 监控并导出 in/out 流量数据到 XML。我有几个问题:
导出的 XML 在元部分中具有相同的开始和结束时间戳。我指定了 --start 1429862400 --end 1429894800,输出值从 1429862700 开始到 1429886100 结束,我也得到了很多 NaN。
我将 ds0 和 ds1 映射到我的 in/out 变量,但实际上我不确定首先在哪里定义 ds。如何将我的变量映射到网络进出流量? ds 设备配置在哪里?
- Ds1,可能是因为配置不当,产生了错误的值。
我是 运行
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>
感谢您的帮助!
首先,XML 输出中的无效 <end>
标记是 RRDTool 中的错误。您没有说您使用的是哪个版本,但如果您使用的不是最新版本,请升级。如果您使用的是最新版本,请报告错误 :)
由于 fenceposting,输出时间点与您请求的 window 略有不同。您正在指定数据点,并正在导出包含它们的 RRA(将在 1 步后结束)。这有点违反直觉,但我认为这是设计使然。
您正在从 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 文件中的名称,也不能添加或删除 DS,而不会破坏 MRTG。如果你想要更多的 DS,唯一的方法是添加一个新的 MRTG 目标——这将创建一个新的 RRD 文件,DS 为 'ds0' 和 'ds1'——然后添加这个作为额外的两条 DEF
行添加到您的 Xport 请求中。
NaN 是基础 RRA 没有有效数据的地方。这可能是因为当时 window 根本没有(足够)收集数据,或者收集的数据无效。相应的 MRTG 图表可能也不会显示任何内容。另一种可能性是选择了错误的 RRA,但这不太可能,因为您的时间 window 只有 9 小时,这正好适合 MRTG 生成的默认 1 天高粒度 RRA。
如果您的值有问题,请验证它们在 RRD 中是否已经有问题 - xport 仅输出数据库中的内容。您是否期望输出以位而不是字节为单位(在这种情况下乘以 8)?您的值是否在 140Mbps(IE 18MBps)左右,但您是通过 SNMPv1 进行查询,在这种情况下 MRTG 无法轮询数据?在这种情况下,使用带有 MRTG 的 SNMPv2 来获取正确的数据。不幸的是,您没有提供任何数据的详细信息'faulty',所以我只能推测。