Я использую 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 предназначен для значений, в которых вас интересует его значение по сравнению со временем. например. если вы хотите, смотрите байты в секунду в вашем случае