Назад | Перейти на главную страницу

Как правильно использовать DERIVE или COUNTER в плагинах munin

Я использую munin для наблюдения за своим сервером.

Мне удалось написать для него плагины, но только если тип графика - GAUGE. Когда я пробую COUNTER или DERIVE, никакие данные не регистрируются и не отображаются на графике.

Плагин, на котором я сейчас застрял, предназначен для мониторинга использования полосы пропускания и выглядит следующим образом:

/ и т. д. / munin / plugins / bandwidth2

#!/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 и не могу найти свою ошибку. Модификация существующего плагина у меня тоже не сработала.

Я думаю, что значения DERIVED должны быть целыми числами, поэтому либо округлите их, либо используйте GAUGE.

Почему бы не использовать GAUGE? Вы хотите измерить полосу пропускания, использованную в течение месяца, это GAUGE.

DERIVE / COUNTER предназначен для значений, в которых вас интересует его значение по сравнению со временем. например. если вы хотите, смотрите байты в секунду в вашем случае