Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Мониторим сервер с помощью Munin

Linux, Настройка сервера Add comments

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.

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

На этом откланиваюсь и желаю успехов! 🙂


16 ноября, 2013  
Tags: debian, debian 7, munin, munin-node, мониторинг, мунин

2 комментария to “Мониторим сервер с помощью Munin”

  1. Evgen
    27 августа, 2015 at 5:03 пп

    Спасибо за статью! По Вашему примеру я написал свой плагин для мониторинга nginx request time — http://letsclearitup.com.ua/debian/pishem-svoy-plagin-dlya-munin-nginx-request-time.html


  2. Gemini_13
    1 октября, 2015 at 2:22 пп

    Спасибо! 🙂


Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua