Munin — это система мониторинга работы различных служб и состояния сервера в целом и в красивых графиках. О нем уже многое написано и перепечатывать или перефразировать уже написанное столько раз считаю не правильным. Кому интересно, тот может зайти на офсайт или хабр, где доступно написано про этот фрукт.
Установка
Устанавливать, как обычно, буду на Debian и мониторить я собираюсь этот же сервер, поэтому буду устанавливать серверную часть и ноду вместе. Установка потянет за собой много зависимостей, не бойтесь.
# aptitude install munin
Отредактируем конфиг сервера.
# nano /etc/munin/munin.conf
Раскомментировать и поправить под себя:
dbdir /var/lib/munin htmldir /home/www/munin.site.com logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates
Создадим папку, в которую мунин будет лить графики и которую мы котом будем смотреть через браузер:
# mkdir /home/www/munin.site.com
Выдадим права, чтобы не было проблем с перезаписью:
# chown -R munin:munin /home/www/munin.site.com/
Настройка хоста на Nginx
Для того, чтобы нджинкс мог спокойно показывать графики ему нужны на это права. Вот и добавим нджинкс в группу munin:
# adduser nginx munin
Теперь приступим к созданию виртуального хоста:
# nano /etc/nginx/sites-available/munin.site.com
Закинем такой конфиг, но лучше настроить под себя:
server { listen 80; server_name munin.site.com www.munin.site.com; root /home/www/munin.site.com; location / { root /home/www/munin.site.com; index index.php index.html; autoindex off; # текст сообщения сервера с предложением ввести пароль # auth_basic "Unauthorized"; # путь к htpasswd файлу # auth_basic_user_file /home/www/$host/.htpasswd; } location = /favicon.ico { log_not_found off; } }
Если есть желание, Вы можете поставить пароль на просмотр статистики. Как это сделать, можно прочитать тут: http://g13.org.ua/пароль-на-папку-в-nginx/
Подключим хост:
# ln -s /etc/nginx/sites-available/munin.site.com /etc/nginx/sites-enabled/munin.site.com
И перезагружаем сервис:
# service nginx start
Установка плагинов
Где искать плагины и как их ставить? Всё очень просто. Плагинов в инете валом, реально очень много. Причем, никто не запрещает Вам писать свои плагины. Плагины можно устанавливать, включать и выключать. Пойдем по порядку.
Плагин представляет из себя просто сценарий практически на любом языке программирования.
Работающие плагины можно найти в /etc/munin/plugins, а общее хранилище плагинов находится в /usr/share/munin/plugins. Список плагинов и их статусы можно просмотреть выполнив команду:
# munin-node-configure
Результат будет такого вида:
Plugin | Used | Extra information ------ | ---- | ----------------- acpi | no | ... uptime | yes | useddisk | yes | users | yes | varnish_ | no | ...
А если использовать ключ —suggest, то мы можем посмотреть причину неработоспособности плагинов:
# munin-node-configure --suggest Plugin | Used | Suggestions ------ | ---- | ----------- acpi | no | no [cannot read /proc/acpi/thermal_zone/*/temperature] amavis | no | no apache_accesses | no | no [apache server-status not found. check if mod_status is enabled] apache_processes | no | no [apache server-status not found. check if mod_status is enabled] apache_volume | no | no [apache server-status not found. check if mod_status is enabled] apc_envunit_ | no | no [no units to monitor] bonding_err_ | no | no [No /proc/net/bonding] courier_mta_mailqueue | no | no [spooldir not found] courier_mta_mailstats | no | no [could not find executable] courier_mta_mailvolume | no | no [could not find executable] cps_ | no | no cpu | yes | yes ... # The following plugins caused errors: # dovecot: # Non-zero exit during autoconf (1) # http_load: # Has 'suggest' capability, but isn't a wildcard plugin # Non-zero exit during autoconf (1) # ip_: # Nothing printed to stdout # No valid suggestions
Для примера возьмем плагин для мониторинга используемой Nginx-ом ОЗУ. Вот он: https://github.com/munin-monitoring/contrib/blob/master/plugins/nginx/nginx_memory
Создаем плагин и вставляем в него код из гитхаба:
# nano /usr/share/munin/plugins/nginx_memory
Теперь модуль нужно включить. Делается это созданием симлинка:
# ln -s /usr/share/munin/plugins/nginx_memory /etc/munin/plugins/nginx_memory
Перезагружаем ноду:
# service munin-node restart
Осталось проверить работает ли плагин:
# munin-run nginx_memory
Если ошибок нет, значит плагин работает и через 5 минут появятся первые результаты, которые можно посмотреть по адресу munin.site.com.
На этом стандартная установка плагинов заканчивается. В комментариях к плагинам часто указываются дополнительные инструкции по настройке и подключению плагина, потому будьте внимательны.
Для отключения плагина достаточно просто удалить симлинк и перезагрузить сервис ноды.
На этом откланиваюсь и желаю успехов! 🙂
27 августа, 2015 at 5:03 пп
Спасибо за статью! По Вашему примеру я написал свой плагин для мониторинга nginx request time — http://letsclearitup.com.ua/debian/pishem-svoy-plagin-dlya-munin-nginx-request-time.html
1 октября, 2015 at 2:22 пп
Спасибо! 🙂