Мониторинг сервера (Munin)

Вот и настал тот момент, когда в поей профессиональной жизни понадобилось мониторить нагрузку и процессы сервера. Решений для данной задачи в интернете можно найти много: cacti, zabbix и т.д. Мой выбор остановился на Munin после прочтения статьи об архитектуре одного проекта.

Сервер ставится очень просто и дает базовую статистику работы сервера. Для того, чтобы мониторить MySQL, PosgreSQL, Nginx нужно дополнительно заниматься настройкой и установкой модулей для Munin. На помощь приходит любимый Python, на котором написан пакет с модулями. Подключаются модули к Munin в два счета.

О том, как «подрубить» PyMunin к Munin пойдет речь в данной заметке.

В качестве операционной системы взята Ubuntu 10.04 LTS c установленным Python 2.7.3.

Установим Munin для сбора статистики работы сервера:

sudo apt-get install munin

Установим PyMunin, набор модулей написанных на Python для Munin. Перед установкой нужно поставить python-pip, если его у вас нет:

pip install PyMunin

Основные зависимости установлены, приступаем к настройке. По умолчанию файл настроек лежит в «/etc/munin/plugin-conf.d/munin-node». В нем мы и будем добавлять секции для нужных нам мониторингов.

Nginx (http://aouyar.github.com/PyMunin/plugins/nginx.html)

Статистику из Nginx можно получать, если его скомпилировать с префиксом «—with-http_stub_status_module». Скомпилируйте Nginx заново с данным аттрибутом, если вы этого не делали.

Настроим Nginx для просмотра статистики. В данном примере, страница со статистикой доступна каждому. Вам нужно будет закрыть ее по «.htpasswd»:

server {
         listen 8088;
         server_name domain.ru;
         ...
         location /nginx_status {
             stub_status on;
             access_log   off;
             allow you_ip_adress;
             deny all;
         }
         ...
}

Создадим символическую ссылку на плагин для сбора статистики Nginx:

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/nginxstats ./nginxstats

Добавим секцию в файл конфигурации:
[nginx*]
env.host domain.ru
env.port 8088

Postgres (http://aouyar.github.com/PyMunin/plugins/postgresql.html)

Ставим необходимые зависимости:

pip install psycopg2

Создадим символическую ссылку на плагин для сбора статистики Postgres:

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/pgstats ./pgstats

Добавим секцию в файл конфигурации:
[pgstats]
env.user your_username
env.password your_password
env.database your_database

MariaDB (http://aouyar.github.com/PyMunin/plugins/mysql.html)

Установим необходимые пакеты для Python:

apt-get install python-mysqldb
pip install MySQL-python

Сделаем символическую ссылку на плагин для сбора статистики MariaDB:

cd /etc/munin/plugins 
ln -s /usr/share/munin/plugins/mysqlstats ./mysqlstats

Добавим секцию в файл конфигурации:
[mysqlstats]
env.user your_username
env.password your_password

Заключение

После настройки необходимо перезагрузить Munin и ждать результатов:

/etc/init.d/munin-node restart

Настроим Nginx для просмотра собираемой статистики:

server {
        listen       80;
        server_name  munin;
	root   /var/cache/munin/www;
	index  index.html index.htm;

	charset utf-8;

        access_log  logs/munin.access.log;
        error_log  logs/munin.error.log  notice;

	location / {
	    index index.html index.htm;
	}
}

Собственно и все. Желаю всем успеха.

P.S. Если  не терпится посмотреть графики, то можно принудительно обновить данные в Munin командой «su — munin /usr/share/munin/munin-update».


Опубликовано

в

от

Метки:

Комментарии

Один комментарий на ««Мониторинг сервера (Munin)»»

  1. Аватар пользователя
    Аноним

    Спасибо за статью! В дополнение к мониторингу nginx — иногда просто необходимо знать nginx request time
    Если интересно, как это можно сделать — http://letsclearitup.com.ua/debian/pishem-svoy-plagin-dlya-munin-nginx-request-time.html

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

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