Установка Munin на CentOS

Munin является инструментом для мониторинга сетевых устройств с возможностью сохранения истории производительности этих устройств. Графики производительности можно смотреть в браузере.

С помощью Munin можно контролировать работу серверов, приложений, мониторить погоду в Сибири или того, что придет Вам на ум. На основе графиков производительности определить, в какой момент с сервером пошло что-то не так (на пример увеличилось потребление памяти)

Для установки подключите Epel репозиторий:
5.4:

sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

6.8:

sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Установка агента/клиента:

yum install munin-node

Установка сервера:

yum install munin

Настройки клиентской части

Конфигурация находятся в файле /etc/munin/munin.conf
Можете изменить стандартное расположение каталогов и файлов, с помощью следующих директив в файле:

dbdir /var/lib/munin  
htmldir /var/www/html/munin  
logdir /var/log/munin  
rundir /var/run/munin

Сразу после установки в сервере будет доступен только localhost. Для того, что бы добавить дополнительные сервера, найдите следующие строки:

# a simple host tree  
[localhost]  
address 127.0.0.1  
use_node_name yes

Добавьте необходимые сервера с помощью следующего шаблона:

[server_name]  
address 12.34.56.78
use_node_name yes

Учтите, что если Вы поменяли значение htmldir в файле /etc/munin/munin.conf, тогда эту папку нужно создать самому и скопировать в нее все файлы с /var/www/html/munin

После этого нужно подредактировать файл настроек для Apache (/etc/httpd/conf.d/munin.conf)

Alias /munin /**путь_к_htmldir**/munin

Теги directory нужно подредактировать соответствующим образом.

Дальше генерируем пароль для авторизации на странице munin:

htpasswd -cmb /etc/munin/munin-htpasswd munin_user munin_password

Настройки клиентской части

находятся в файле /etc/munin/munin-node.conf
Нас интересуют строки, позволяющие подключаться к агенту, на основе ip адресов. Сразу после установки в файле разрешено подключаться только с адреса 127.0.0.1.

allow ^127\.0\.0\.1$

Думаю понятно, что сюда нужно добавить ip адрес сервер с демоном munin, что бы разрешить ему собирать информацию.

Ставим munin на автозагрузку

chkconfig -add munin-node

Запускаем

/etc/init.d/munin-node start

По умолчанию munin будет опрашивать все сервера 1 раз в 5 минут. Соответсвенно шаг на всех графиках будет равен 5 минутам. Для того, что бы получать более точную информацию нужно подредактировать следующий файл:

/etc/cron.d/munin

И сменить 5 минут на 1.

В браузере открываем http://<strong>ip_адрес_вашего_сервера</strong>/munin/

Screenshot from 2014-08-27 12:04:41

Мониторим MySQL:

Нужно отредаткировать плагин и внести в него имя пользователя и пароль для доступа к mysql:

vim /usr/share/munin/plugins/mysql_

Находим секцию %config
Screenshot from 2015-04-23 14:43:32

Дальше все понятно - на против mysqlpassword нужно поставить пароль админа. При необходимости изменить имя пользователя.

Осталось включить плагин:

cd /etc/munin/plugins  
ln -sf /usr/share/munin/plugins/mysql_ mysql_

Следующая команда выводит список графиков, которые можно получить с помощью плагина:

/usr/share/munin/plugins/mysql_ suggest

Для того, что бы включить все предложеные плагины выполните:

for i in \`./mysql_ suggest\`; do ln -sf /usr/share/munin/plugins/mysql_ $i; done

Для применения изменений перезапустите демон:

service munin-node restart

Обнуляем данные:

Бывает так, что какой-то из серверов приходится удалить, а его графики остаются. Или вы обнаружили, что что-то настроено неправильно и хотите очистить все в munin и начать с чистого листа.

Munin хранит информацию в двух папках. Их-то и нужно очистить:

rm -rf /var/www/html/munin/*  
rm -rf /var/lib/munin/*

Дальше нужно руками запустить munin-cron

su - munin -shell=/bin/bash  
/usr/bin/munin-cron

Включаем мониторинг Apache2:
Для начала удостоверимя, что status_module установлен и включен в конфигурации Apache2:

apachectl -t -D DUMP_MODULES 2>&1|grep status_module

Если все ОК - содаем конфигурационный файл

nano /etc/httpd/conf.d/status.conf

Со следующим содержанием:

<IfModule mod_status.c>

ExtendedStatus On
<Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from localhost ip6-localhost
  Allow from 127.0.0.1
  Allow from 192.168.100.0/24
</Location>

</IfModule>

Включаем плагины munin:

sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes  
sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses  
sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume