Загрузка 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
Другие вопросы по тегам