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

Установка предупреждений / критических пороговых значений в файле plugin-conf.d

Я могу установить предупреждения / критические пороги в munin.conf (для написанного мной плагина) вот так:

load_per_core.load_per_core.warning 0.2 # Low value to trigger warnings
load_per_core.load_per_core.critical 1

Это работает, как и ожидалось, я вижу уведомления по электронной почте и нужные элементы на графиках.

Но я хочу переместить эти элементы конфигурации в отдельный файл, чтобы мне было легче управлять ими на разных серверах с помощью Puppet. Однако, когда я перемещаю эти две строки в новый файл plugin-conf.d/zz-load_per_core как это:

[load_per_core]
env.load_per_core.warning 0.3 # Low value to trigger warnings
env.load_per_core.critical 1

... не работает. Никаких писем, ничего на графиках.

Я догадался, в каком формате начинаются строки env.load_per_core так может вот что не так?

tldr; Пары ключ / значение конфигурации Munin - это переменные среды, которые вводятся в среду выполнения конкретного плагина во время выполнения. Доступ к ним должен осуществляться из кода плагина, как и к любой другой системной переменной среды.

Выполнение плагина Munin

Каждый плагин munin - это отдельный исполняемый файл. Во время выполнения Munin создает отдельную среду для каждого плагина, в которую он вводит переменные, на которые плагин может ссылаться. Есть две группы переменных среды: ядро мунина и специфичный для плагина.

Наконечник: Использовать munin-run -d load_per_core чтобы увидеть, какие переменные среды вводятся в среду вашего плагина.

Как определить переменные среды

Переменные среды, специфичные для плагина, объявляются для каждого плагина с использованием синтаксиса:

#/etc/munin/plugin-conf.d/zz-name_of_your_plugin
[name_of_your_plugin]
env.identifier value

Что в вашем случае будет:

#/etc/munin/plugin-conf.d/zz-load_per_core
[load_per_core]
env.load_per_core.warning 0.2 

Это создает envпеременная утюга с идентификатором load_per_core.warning что имеет ценность 0.2 и вводит его в среду исполнения плагина с именем load_per_core.

Важный: Начать сначала munin-node чтобы изменения вступили в силу:

sudo service munin-node restart 

Где определять переменные среды

Переменные плагина определены в каталоге /etc/munin/plagin-conf.d.

Munin создает в этом месте файл конфигурации по умолчанию с именем munin-node не рекомендуется редактировать этот файл потому что мунин может его перезаписать.

Вместо этого создайте новый файл для каждого плагина. Что в вашем случае может быть /etc/munin/plugin-conf.d/zz-load_per_core. При наименовании файла конфигурации плагина следует учитывать две вещи:

  1. Имя произвольно, поскольку оно не обязательно должно соответствовать имени вашего плагина, оно может быть любым, но...
  2. Файлы конфигурации в этом каталоге оцениваются в алфавитный порядок и определения могут перезаписывать друг друга. Поэтому обеспечьте приоритет вашего файла конфигурации, добавив к имени префикс zz, чтобы убедиться, что он оценивается. после munin-node.

Как получить доступ к переменным среды

К переменным среды конфигурации можно получить доступ из кода вашего плагина, как и к любой другой переменной среды. Синтаксис для этого зависит от языка, используемого вашим плагином. например, если ваш плагин был написан на трепать можно было написать:

#!/usr/bin/bash
#this would access and print the load_per_core.warning environment var 
#i.e 0.2    
echo $load_per_core.warning 

или в Python:

#!/usr/bin/env python
import os
print os.environ.get('load_per_core.warning')

или в Perl, используя стандартную библиотеку Munin:

#!/usr/bin/perl
use Munin::Plugin;
print_thresholds('load_per_core');