Сб. Дек 21st, 2024

Среди утилит и средств мониторинга в системах Linux существует огромное количество различных утилит,средств,программ и т.д. Каждая из них обладает чем то уникальным,чем то удобным. Я для себя выбрал одну из них — Munin (http://munin-monitoring.org/). Это клиент-серверное приложение,основанное на Perl-скриптах и веб-морде для вывода графиков. Состоит из двух частей — программы построения графиков из полученной информации — сам Munin. И сервера-сборщика данных — Munin-node. Общаются они между собой посредством TCP/IP сокета,так что один сборщик графиков может собирать инфу с разных удаленных серверов по всему инету. Только разреши это в конфигах. Ну всетаки перейдем к процессу установки…

Есть как минимум два способа установки: 1) из репозиториев 2)сборка вручную.

1) Установка из репозиториев.

Munin старой версии 1.х есть в репах Линукса, так что установить можно одной командой:

apt-get install munin munin-node

После чего все автоматом станет и настроится. Как правило,вмешиваться никуда не надо из коробки.Просто ждешь немного что б сработало обновление графиков,и заходишь по адресу http://127.0.0.1/munin

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

2)Ручная сборка(или же обновление старой версии до новой)

Для этого идем на http://munin-monitoring.org/ и качаем последнюю версию Munin. Распаковуем куда нить,например в /tmp/. Если у вас уже установлена старая версия(из репозиториев например) — удаляем ее нахуй!

apt-get purge munin

И за ней удаляем каталоги /etc/munin/, /usr/share/munin и т.д.

Теперь переходим в папку с распакованными исходниками нашего нового Мунина. Например пусть будет папка /tmp/munin-2.0.10. В ней читаем INSTALL. Хотя врят ли,я ж напишу что как пошагово,зачем что то читать?

В итоге все сводиться к двум вещам:

а)Сначала редактируем /tmp/munin-2.0.10/Makefile.config под себя

б)Собираем

make

и установливем сначала Munin

make install

затем сервер Munin-node

make install-common-prime install-node-prime install-plugins-prime

Теперь он установлен.Но не запустится. 99% вероятности у вас выдаст вот это

Can’t locate IO/Socket/INET6.pm in @INC

Это значит не хватает вот такой вот библиотеки:

apt-get install libio-socket-inet6-perl

Теперь нужно создать(или изменить) конфиг Апача для того,что б наша веб-морда работала — в папке /etc/apache2/conf.d/ создадим файл с именем например munin и содержимым:

Alias /munin /opt/munin/www/docs
<Directory /opt/munin/www/docs>
Order allow,deny
Allow from all
Options None

#AuthUserFile /var/.htpasswd

#AuthName «Munin»
#AuthType Basic
#require valid-user

<IfModule mod_expires.c>

ExpiresActive On
ExpiresDefault M310
</IfModule>

</Directory>

Здесь прописан мой путь к папке  — /opt/munin/www/docs. Если у вас другой,соответственно измените его тут. Знаком # закомментированы строчки авторизации для доступа к странице статистики Мунина. Что это и как с ним работать читайте тут. Перезагрузим Апач:

/etc/init.d/apache2 restart

А вот теперь я расскажу,как и обещал выше, о конфигурировании плагинов для Munin. Изначально Мунин имеет кучу предустановленных плагинов. Все они лежат в папке(в данном примере) /opt/munin/lib/plugins/. Вы можете посмотреть их все там. Для того что б нужный нам плагин заработал — нужно создать на него символическую ссылку в папке /etc/munin/plugins/. Например возьмем плагин с информацией о сетевой интерфейсе. Называется он if_. Создаем симлинк на него:

ln -s /opt/munin/lib/plugins/if_  /etc/munin/plugins/if_eth0

Вы заметили что изначально имя плагина заканчивалось знаком подчеркивания,а мы при создании симлинка добавили туда имя нашего интерфейса. В этом и заключается одна из фишек конфига — если имя плагина заканчивается на _ , то это означает необходимость указания параметра.Без указания он работать не будет. Зачем это? Например у нас есть интерфейсы eth0, wlan0 и ppp0. Мы хотим получать информацию об интерфейсах eth0, wlan0 и не хотим о ppp0. Мы просто создаем две ссылки на изначально один и тот же плагин, но в конце каждого раза дописываем имя наших интерфейсов,и получаем в итоге два симлинка с именами if_eth0 и if_wlan0.Теперь мы будем видеть графики со статистикой двух интерфейсов.

Теперь,на основе этого, вам надо повыбирать и посоздавать симлинки на нужные плагины для Munin,тем самым закончив его конфигурирования. Теперь осталось пара важных моментов — добавить в Cron для автоматического обновления статистики,и запустить munin-node.

Обычно статистика обновляется каждые 5 минут. Можно больше,можно меньше — по вашему усмотрению.Я обновляю каждые 5 минут. Для этого мы создадим файл с заданием крона. В папке /etc/cron.d/ создадим файл munin-node с содержимым:

*/5 * * * * munin /opt/munin/bin/munin-cron

Здесь мы задаем Крону каждые 5 минут от имени пользователя munin запускать приложение обновления. Это приложение надо запускать только от имени пользователя munin, от имени другого оно работать не будет.Тем более от имени root в случае если вы не укажите от чьего имени запускать.

Теперь осталось только запустить Munin-node. Если честно,на момент написания этой статьи,у меня имеются проблемы с точностью запуска.Дело в том,что красивый скрипт запуска,оставшийся от старой версии работает через раз. Как я понимаю сейчас,запуск осуществляется скриптом /opt/munin/sbin/munin-node. Когда я точно доделаю скрипт запуска и управления  нодой, я допишу его сюда.

Итак,считаем что у нас все установлено и работает! Поздравляю)

И немного о сборе информации с разных серверов: для этого надо на сервер с которого надо собирать установить munin-node  и в конфиге /etc/munin/munin-node.conf дописать

Allow ^ххх\.ххх\.ххх\.ххх$ 

где ххх заменить своим адресом сервера,который будет подключаться и собирать статистику. А на сервере,сборщике статистики установить Munin и в конфиге /etc/munin/munin.conf дописать

[myserver]

address xxx.xxx.xxx.xxx

use_node_name yes

где ххх.ххх.ххх.ххх — адрес сервера,с которого надо собирать статистику и после всего перезагрузить на всех серверах munin-node.

от RUSUA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Анти-спам: выполните заданиеWordPress CAPTCHA