如何在 munin 插件中正确使用 DERIVE 或 COUNTER

如何在 munin 插件中正确使用 DERIVE 或 COUNTER

我正在使用 munin 来监控我的服务器。

我已经能够为其编写插件,但前提是图表类型为 GAUGE。当我尝试 COUNTER 或 DERIVE 时,没有记录或绘制任何数据。

我目前使用的插件用于监控带宽使用情况,如下所示:

/etc/munin/插件/带宽2

#!/bin/sh

if [ "$1" = "config" ]; then
    echo 'graph_title Bandwidth Usage 2'
    echo 'graph_vlabel Bandwidth'
    echo 'graph_scale no'
    echo 'graph_category network'
    echo 'graph_info Bandwidth usage.'

    echo 'used.label Used'
    echo 'used.info Bandwidth used so far this month.'
    echo 'used.type DERIVE'
    echo 'used.min 0'

    echo 'remain.label Remaining'
    echo 'remain.info Bandwidth remaining this month.'
    echo 'remain.type DERIVE'
    echo 'remain.min 0'

    exit 0
fi

cat /var/log/zen.log

/var/log/zen.log的内容是:

used.value 61.3251953125
remain.value 20.0146484375

最终的数据库结果如下:

<!-- Round Robin Database Dump --><rrd> <version> 0003 </version>
    <step> 300 </step> <!-- Seconds -->
    <lastupdate> 1269936605 </lastupdate> <!-- 2010-03-30 09:10:05 BST -->

    <ds>
            <name> 42 </name>
            <type> DERIVE </type>
            <minimal_heartbeat> 600 </minimal_heartbeat>
            <min> 0.0000000000e+00 </min>
            <max> NaN </max>

            <!-- PDP Status -->
            <last_ds> 61.3251953125 </last_ds>
            <value> NaN </value>
            <unknown_sec> 5 </unknown_sec>
    </ds>

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

            <params>
            <xff> 5.0000000000e-01 </xff>
            </params>
            <cdp_prep>
                    <ds>
                    <primary_value> NaN </primary_value>
                    <secondary_value> NaN </secondary_value>
                    <value> NaN </value>
                    <unknown_datapoints> 0 </unknown_datapoints>
                    </ds>
            </cdp_prep>
            <database>
                    <!-- 2010-03-28 09:15:00 BST / 1269764100 --> <row><v> NaN </v></row>
                    <!-- 2010-03-28 09:20:00 BST / 1269764400 --> <row><v> NaN </v></row>
                    <!-- 2010-03-28 09:25:00 BST / 1269764700 --> <row><v> NaN </v></row>
                    <snip>

last_ds 的值是正确的,但它似乎没有进入实际的数据库。

如果我将 DERIVE 更改为 GAUGE,它就会按预期工作。

munin-run bandwidth2 

输出 /var/log/zen.log 的内容

我查看了 munin 插件的所有(稀疏)文档,但没能找到我的错误。修改现有插件对我来说也不起作用。

答案1

我认为 DERIVED 值必须是整数值,因此要么对其进行四舍五入,要么使用 GAUGE。

答案2

为什么不使用 GAUGE?如果你想测量一个月内使用的带宽,那就使用 GAUGE。

DERIVE/COUNTER 用于您感兴趣的值与时间的比较。例如,如果您希望查看每秒的字节数

相关内容