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

Загрузка 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

Какой рабочий пример для этого?

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

Важные подводные камни

  • Определения меток в самой последней части конфигурации: обязательный. Отсутствие их приводит к молчаливому провалу munin!
  • обновить нет требуется, хотя я не уверен, нужно ли вам 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