0

我想使用 MRTG 和 rrdtool xport 监控 + 将输入/输出流量数据导出到 XML。我有几个问题:

  • 导出的 XML 在元部分具有相同的开始和结束时间戳。我指定了 --start 1429862400 --end 1429894800,输出值从 1429862700 开始,到 1429886100 结束,我也得到了很多 NaN。

  • 我将 ds0 和 ds1 映射到我的输入/输出变量,但我实际上并不确定首先在哪里定义 ds。如何将变量映射到网络进出流量?ds-devices 在哪里配置?

    • 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>

谢谢你的帮助!

4

1 回答 1

0

首先,<end>XML 输出中的无效标签是 RRDTool 中的一个错误。你没有说你用的是哪个版本,但是如果你用的不是最新的,请升级。如果您使用的是最新版本,请报告错误 :)

由于栅栏发布,输出时间点与您请求的窗口略有偏差。您正在指定数据点,并正在导出包含它们的 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 文件中的名称,也无法在不破坏 MRTG 的情况下添加或删除 DS。如果您想拥有更多 DS,唯一的方法是添加一个新的 MRTG 目标——这将创建一个新的 RRD 文件,其中 DS 为“ds0”和“ds1”——然后将其添加到您的 Xport 请求中作为附加的两DEF行。

NaN 是基础 RRA 没有有效数据的地方。这可能是因为在该时间窗口内没有(足够)收集数据,或者收集的数据无效。相应的 MRTG 图表也可能什么也不显示。另一种可能性是选择了错误的 RRA,但这不太可能,因为您的时间窗口只有 9 小时,这很适合 MRTG 生成的默认 1 天高粒度 RRA。

如果您的值有错误,请验证它们在 RRD 中是否已经有错误 - xport 仅输出数据库中的内容。您是否期望输出为位而不是字节(在这种情况下乘以 8)?您的值是否在 140Mbps(即 18MBps)左右,但您通过 SNMPv1 进行查询,在这种情况下 MRTG 无法轮询数据?在这种情况下,使用带有 MRTG 的 SNMPv2 来获取正确的数据。不幸的是,您没有详细说明数据是如何“错误”的,所以我只能推测。

于 2015-04-27T22:40:00.073 回答