MRTG:rrdtool xport - 导出 in/out 流量时出现问题

MRTG: rrdtool xport - Problems with exporting in/out traffic

我想使用 MRTG 和 rrdtool xport 监控并导出 in/out 流量数据到 XML。我有几个问题:

我是 运行

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 -- 称为 ds0ds1。尽管 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',所以我只能推测。