Среди утилит и средств мониторинга в системах 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% вероятности у вас выдаст вот это
Это значит не хватает вот такой вот библиотеки:
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.