Вот и настал тот момент, когда в поей профессиональной жизни понадобилось мониторить нагрузку и процессы сервера. Решений для данной задачи в интернете можно найти много: 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».
Добавить комментарий