在 ubuntu 12.04 中,collectd 存储 NaN 而不是正确的值

在 ubuntu 12.04 中,collectd 存储 NaN 而不是正确的值

我在我的 ubuntu 12.04 上使用 sudo apt-get install collectd 安装了 collectd,但它只在 rrd 文件中收集 NaN 值。例如,对于名为 memory-used.rrd 的文件,这是它保存的值。

0003 10 1366005779

<ds>
    <name> value </name>
    <type> GAUGE </type>
    <minimal_heartbeat>20</minimal_heartbeat>
    <min>0.0000000000e+00</min>
    <max>2.8147497671e+14</max>

    <!-- PDP Status -->
    <last_ds>1807986688.000000</last_ds>
    <value>1.6271880192e+10</value>
    <unknown_sec> 0 </unknown_sec>
</ds>

<!-- Round Robin Archives -->
<rra>
    <cf>AVERAGE</cf>
    <pdp_per_row>1</pdp_per_row> <!-- 10 seconds -->

    <params>
    <xff>1.0000000000e-01</xff>
    </params>
    <cdp_prep>
        <ds>
        <primary_value>1.8075664384e+09</primary_value>
        <secondary_value>0.0000000000e+00</secondary_value>
        <value>NaN</value>
        <unknown_datapoints>0</unknown_datapoints>
        </ds>
    </cdp_prep>
    <database>
        <!-- 2013-04-15 07:13:00 IRDT / 1365993780 --> <row><v>NaN</v></row>
        <!-- 2013-04-15 07:13:10 IRDT / 1365993790 --> <row><v>NaN</v></row>
        <!-- 2013-04-15 07:13:20 IRDT / 1365993800 --> <row><v>NaN</v></row>
        <!-- 2013-04-15 07:13:30 IRDT / 1365993810 --> <row><v>NaN</v></row>
        <!-- 2013-04-15 07:13:40 IRDT / 1365993820 --> <row><v>NaN</v></row>
        <!-- 2013-04-15 07:13:50 IRDT / 1365993830 --> <row><v>NaN</v></row>
                    .........
</database>
</rra>

答案1

解决 collectd 问题的一个非常有效的方法:

  • 启用尽可能少的读取插件(例如你的情况记忆

    LoadPlugin memory
    
  • 使能够源文件写插件

    LoadPlugin csv
    <Plugin csv>
      DataDir "/tmp/collectd-csv"
    </Plugin>
    
  • 使能够日志档案插入

    <Plugin logfile>
       File STDOUT
       ## Only available if compiled using --enable-debug
       # LogLevel debug
       ##
       LogLevel info
    </Plugin>
    
  • 跑步收集在前景中

    collectd -C /path/to/collectd.conf -f
    
  • 看看你的源文件目录,如果有任何报告

如果一切正常,下一步就是排除故障rrd工具插入。

相关内容