Статья расчитана на установку в таких операционных системах как Debian, Ubuntu, CentOS и FreeBSD.
Содержание |
Debian/Ubuntu
Устанавливаем munin и munin-node
# apt-get install munin munin-node
Открываем файл /etc/munin/munin.conf, меняем там "[localhost.localdomain]" на "[localhost]" и сохраняем.
Проверяем наличие файла /etc/apache2/conf.d/munin
Если файл существует, то открываем его, меняем все "Allow from localhost 127.0.0.0/8 ::1" на "Allow from all" и сохраняем файл.
Перезапускаем apache
# service apache2 restart
Если файла /etc/apache2/conf.d/munin нет, то создаём его со следующим содержимым:
Alias /munin /var/cache/munin/www <Directory /var/cache/munin/www> Order allow,deny Allow from all Options None <IfModule mod_expires.c> ExpiresActive On ExpiresDefault M310 </IfModule> </Directory> ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph <Location /munin-cgi/munin-cgi-graph> Order allow,deny Allow from all <IfModule mod_fastcgi.c> SetHandler fastcgi-script </IfModule> </Location> ScriptAlias /munin-cgi/munin-cgi-html /usr/lib/munin/cgi/munin-cgi-html <Location /munin-cgi/munin-cgi-html> Order allow,deny Allow from all <IfModule mod_fastcgi.c> SetHandler fastcgi-script </IfModule> </Location>
Перезапускаем apache
# service apache2 restart
Теперь переходим в вэб-браузере по ссылке http://IP_сервера/munin и смотрим статистику.
Доступные графики находятся в разделе "Categories"
Если нужно принудительно обновить графики то нужно войти под пользователем munin
# su - munin --shell=/bin/bash
и выполнить следующую команду
# /usr/share/munin/munin-update –force-root
Затем выйти из под пользователя munin
# exit
Примеры добавления графиков
Рассмотрим добавление графиков по статистике Apache и MySQL.
Добавляем сбор статистики Apache сервера
Проверяем подкючены-ли необходимые для этого плагины:
# munin-node-configure --suggest |grep apache
В результате видим:
apache_accesses | no | no [LWP::UserAgent not found] apache_processes | no | no [LWP::UserAgent not found] apache_volume | no | no [LWP::UserAgent not found]
Первое "no" означает, что плагины не подключены, второе "no [LWP::UserAgent not found]" - что не хватает Perl библиотеки "LWP::UserAgent"
Подключенные плагины расположены по тут - /etc/munin/plugins
Все плагины, которые можно подключить дополнительно расположены тут - /usr/share/munin/plugins
Подключаем плагины "apache_accesses", "apache_processes" и "apache_volume"
# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
# ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
Проверяем
# munin-node-configure --suggest |grep apache
В результате видим:
apache_accesses | yes | no [LWP::UserAgent not found] apache_processes | yes | no [LWP::UserAgent not found] apache_volume | yes | no [LWP::UserAgent not found]
Устанавливаем Perl библиотеку LWP::UserAgent
# apt-get install libwww-perl
Проверяем
# munin-node-configure --suggest |grep apache
Видим:
apache_accesses | yes | no [Port 80: Forbidden] apache_processes | yes | no [Port 80: Forbidden] apache_volume | yes | no [Port 80: Forbidden]
Это означает, что нет доступа к информации server-status от Apache.
Включаем server-status
# ln -s /etc/apache2/mods-available/status.conf /etc/apache2/mods-enabled/status.conf
# ln -s /etc/apache2/mods-available/status.load /etc/apache2/mods-enabled/status.load
Открываем файл /etc/apache2/mods-enabled/status.conf, добавляем перед строкой "<Location /server-status>" строку "Alias /server-status /dev/null" и сохраняем файл.
Перезапускаем apache
# service apache2 restart
Проверяем
# munin-node-configure --suggest |grep apache
Видим:
apache_accesses | yes | yes apache_processes | yes | yes apache_volume | yes | yes
Выполняем
# munin-node-configure
Перезапускаем munin-node
# /etc/init.d/munin-node restart
По прошествии какого-то времени мы увидим, что в разделе "Categories" появился пункт "apache".
Добавляем сбор статистики MySQL сервера
Подключаем необходимые плагины
# ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_
# ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
# ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
# ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
# ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb
Так же, потребуется установить Perl библиотеки libdbd и libcache
# apt-get install libdbd-mysql-perl libcache-cache-perl
Выполняем
# munin-node-configure
# /etc/init.d/munin-node restart
По прошествии какого-то времени мы увидим, что в разделе "Categories" появился пункт "mysql".
CentOS
Устанавливаем munin и munin-node
# yum install munin munin-node
Создаём папку в которую будут генерироваться файлы статистики
# mkdir -p /var/www/html/munin
В файле /etc/munin/munin.conf раскомментируем строку "#htmldir /var/www/html/munin" (удаляем решётку перед htmldir) и сохраняем.
Делаем пользователя munin владельцем папки /var/www/html/munin
# chown munin:munin /var/www/html/munin
Запускаем munin-node
# service munin-node start
Активируем веб-интерфейс
# echo ' ' > /etc/httpd/conf.d/munin.conf
Открываем файл /etc/httpd/conf.d/munin.conf и прописываем туда следующее:
<directory /var/www/html/munin> ExpiresActive On ExpiresDefault M310 </directory> ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph
Перезапускаем apache
# service httpd restart
Теперь переходим в вэб-браузере по ссылке http://IP_сервера/munin и смотрим статистику.
Доступные графики находятся в разделе "Categories"
Примеры добавления графиков
Рассмотрим добавление графиков по статистике Apache и MySQL.
Добавляем сбор статистики Apache сервера
Проверяем подкючены-ли необходимые для этого плагины:
# munin-node-configure --suggest |grep apache
Видим:
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]
Первое "no" означает, что плагины не подключены, второе "no [LWP::UserAgent not found]" - что нет доступа к информации server-status от Apache.
Подключенные плагины расположены по тут - /etc/munin/plugins
Все плагины, которые можно подключить дополнительно расположены тут - /usr/share/munin/plugins
Подключаем плагины "apache_accesses", "apache_processes" и "apache_volume"
# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
# ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
Включаем server-status
# yum install links elinks
Открываем файл /etc/httpd/conf/httpd.conf, раскомментируем "#ExtendedStatus On", а, так же, весь блок <Location /server-status> (до </Location>), внутри блока меняем "Allow from .example.com" на "Allow from 127.0.0.1" и сохраняем файл.
Перезапускаем apache
# service httpd restart
Проверяем
# munin-node-configure --suggest |grep apache
Видим:
apache_accesses | yes | yes apache_processes | yes | yes apache_volume | yes | yes
Выполняем
# munin-node-configure
Перезапускаем munin-node
# service munin-node restart
По прошествии какого-то времени мы увидим, что в разделе "Categories" появился пункт "apache".
Добавляем сбор статистики MySQL сервера
Подключаем необходимые плагины
# ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_
# ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
# ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
# ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
# ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb
Далее необходимо отредактировать файл /etc/munin/plugin-conf.d/munin-node и указать там, при этом, реальный пароль пользователя root от MySQL.
Узнать пароль можно в конфиге ispmanager
# cat /usr/local/ispmgr/etc/ispmgr.conf |grep Password
Открываем файл /etc/munin/plugin-conf.d/munin-node и добавляем туда следующее:
[mysql*] env.mysqluser root env.mysqlpassword PASSWORD env.mysqladmin /usr/bin/mysqladmin env.mysqlshow /usr/bin/mysqlshow
Вместо слова 'PASSWORD' указываем реальный пароль пользователя root MySQL сервера.
Выполняем
# munin-node-configure
Перезапускаем munin-node
# service munin-node restart
По прошествии какого-то времени мы увидим, что в разделе "Categories" появился пункт "mysql".
Отправка уведомлений на e-mail
Рассмотрим пример настройки уведомлений на e-mail.
Уведомления в Munin делятся на критические (critical) и предупреждения (warning).
Для примера настроим уведомления по количеству открытых в системе файлов.
Для этого посмотрим какие параметры передаёт плагин open_files
# munin-run open_files
Видим
used.value 832 max.value 47250
То есть, текущее кол-во открытых файлов 832.
Для того, чтобы сразу проверить результат нашей настройки, зададим значение для warning меньше текущего (пусть будет 800), а значение critical сделаем, например, 1000.
Как только значение кол-ва открытых файлов достигнет значения warning, нам на почту придёт уведомление об этом (аналогично и с critical).
Итак, приступим.
Открываем файл "munin.conf" (в зависимости от ОС путь к нему будет разный - /usr/local/etc/munin/ для FreeBSD и /etc/munin/ для всех Linux) и в секцию [localhost] добавляем значения warning и critical для open_files.
open_files.used.warning 800 open_files.used.critical 1000
Тут нужно пояснить как это работает:
open_files - наименование плагина
used - параметр который мы будем наблюдать (названия передаваемых параметров мы уже смотрели командой "munin-run open_files").
warning и critical - значения для предупреждений и критических отметок.
Далее ниже в этом же файле (munin.conf) создаём контакт для отправки уведомлений.
Для большей нагладности создадим два контакта - на один у нас будут отсылаться предупреждения, а на второй критические уведомления.
Контакт для предупреждений у нас будет называться "warn" (это не пренципиально, имя может быть любым), а для критических - "crit".
Добавляем контакты:
contacts warn crit
Указываем какому контакту какие сообщения отсылать:
open_files.contacts.warning warn open_files.contacts.critical crit
Указываем на какой ящик слать для warn и на какой для crit:
contact.warn.command mail -s "Munin Warning!" munin_warn@site.ru contact.crit.command mail -s "Munin Critical!" munin_crit@site.ru
В итоге, у нас должно получиться следующее:
contact.warn.command mail -s "Munin Warning!" munin_warn@site.ru contact.crit.command mail -s "Munin Critical!" munin_crit@site.ru [localhost] address 127.0.0.1 use_node_name yes open_files.used.warning 800 open_files.used.critical 1000 open_files.contacts.warning warn open_files.contacts.critical crit contacts warn crit
Сохраняем munin.conf и перезапускаем munin-node.
Переходим в веб-интерфейс munin и видим, что сработал warning по open_files, так как мы специально заранее занизили open_files.used.warning ниже текущего значения
Проверяем почту и видим, что там у нас появилось письмо с темой "Munin Warning!", а внутри письма информациа по open_files.used на момент его отправки.