Загрузка Munin с нескольких серверов в одном графике
Я пытаюсь сравнить средние нагрузки нескольких серверов, используя Munin 1.4.6-3ubuntu3, объединяя несколько хостов в один график.
Моя попытка:
[domain.com;Totals]
load.graph_title Load
load.graph_category System
load.graph_order s1=s1.domain.com:load.load \
s2=s2.cisco.com:load.load \
s3=s3.cisco.com:load.load \
s4=s4.cisco.com:load.load \
s5=s5.cisco.com:load.load \
s6=s6.cisco.com:load.load \
s7=s7.cisco.com:load.load
Результаты в:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s2=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s3=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s4=s2;domain;com:load:
И нет графиков, созданных в /var/cache/munin/www/domain.com/Totals
, просто index.html
, а также load.html
Какой рабочий пример для этого?
2 ответа
Я долго боролся с комбинированными графиками. По своему опыту я могу сказать, что проверка входных данных Мунина действительно плохая. Поэтому он часто молча терпит неудачу, если вы забыли установить обязательную опцию или слишком много опций. Кроме того, я столкнулся с действительно странной проблемой, из-за которой мой объединенный график исчезал через несколько минут после простоя сервера. Эта проблема была решена путем обновления до Ubuntu 13.04 (munin 2.0.9-1ubuntu1).
Немного предыстории о нашей настройке
В настоящее время у нас есть три производственных сервера за балансировщиком нагрузки. Каждый из них считает количество входящих запросов. Все эти серверы контролируются munin, и пользовательский плагин (myplugin) извлекает счетчик запросов и представляет его как единый источник данных, называемый "запросы". Используя эту настройку, мы получили три разных графика для трех разных серверов. Теперь это, очевидно, идеальный вариант использования для комбинированных графов.
Вот моя рабочая конфигурация
[server-1.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[server-2.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[server-3.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[aggregate.production]
update no
myplugin.update no
myplugin.graph_args --base 1000 -l 0
myplugin.graph_category myplugin
myplugin.graph_vlabel requests/s
myplugin.graph_title request rate
myplugin.graph_order \
total \
server-1=server-1.production:myplugin.requests \
server-2=server-2.production:myplugin.requests \
server-3=server-3.production:myplugin.requests
myplugin.total.sum \
server-1.production:myplugin.requests \
server-2.production:myplugin.requests \
server-3.production:myplugin.requests
myplugin.server-1.label server-1
myplugin.server-2.label server-2
myplugin.server-3.label server-3
myplugin.total.label total
Важные подводные камни
- Требуются определения меток в самой последней части конфигурации. Отказ от них приводит к тому, что Мунин молча терпит неудачу!
- обновление не требуется, хотя я не уверен, нужно ли myplugin.update нет.
- Убедитесь, что вы используете последнюю версию munin, поскольку ошибки активно исправляются.
Это предупреждающее сообщение вы получаете из-за синтаксической проверки, которая не понимает многострочное разбиение на "\", и поэтому она считает, что ваша переменная "load" является допустимым ключевым словом для завершения команды конфигурации. Я считаю, что это ошибка в текущем мунине.
Хотя они обрабатываются правильно, вы можете избежать этого Предупреждения, удалив '\' и сжав все следующие строки в одну:
load.graph_order s1=s1.domain.com:load.load s2=s2.cisco.com:load.load s3=s3.cisco.com:load.load s4=s4.cisco.com:load.load s5=s5.cisco.com:load.load s6=s6.cisco.com:load.load s7=s7.cisco.com:load.load
Независимо от вышеупомянутого обходного пути, вам также необходимо добавить:
use_node_name no
update no
load.update no