Я могу установить предупреждения / критические пороги в 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-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
. При наименовании файла конфигурации плагина следует учитывать две вещи:
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');