Munin на CentOS с Plesk-панелью
Вообще-то я сторонник мониторинга с mrtg + rrd-tool и ручной настройкой, так как графики в таком случае рисуются только при запросе, а все данные хранятся в rrd-файлах, что существенно уменьшает нагрузку при большом количестве серверов и параметров. Однако, в отдельном случае, быстрее и проще настроить munin, он по умолчанию генерирует все графики каждые 5 минут. Пример настройки на CentOS 5.5 с установленной Plesk-панелью.
Munin так же можно настроить на отрисовку графиков по запросу, об этом в самом конце.
Для начала, ставим репозиторий rpmforge.
Устанавливаем необходимые пакеты:
yum -y install munin munin-node
Переходим к настройке мониторинга. Так как в первую очередь меня интересовало мониторить apache и mysql, ну и до кучи bind, то необходимо включить нужные плагины. В случае мониторинга bind, есть несколько вариантов, я остановился на одном из них — bind9_rndc.
Создаем симвлические ссылки:
cd /etc/munin/plugins/
ln -s /usr/share/munin/plugins/apache_* ./
ln -s /usr/share/munin/plugins/mysql_* ./
ln -s /usr/share/munin/plugins/bind9_rndc ./
Редактируем конфиг apache — /etc/httpd/conf/httpd.conf , ищем строки, раскомментируем, меняем — должно получится вот так:
LoadModule status_module modules/mod_status.so
ServerSignature On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1 ::1
</Location>
в файле /etc/httpd/conf.d/munin.conf делаем корректировку на предмет доступа, кому как удобно, можно и по логину с паролем, мне удобнее по IP, добавляем, заменив my_ip_address на свой ip-адрес:
<Directory /var/www/munin/cgi/>
Order Deny,Allow
Deny from all
Allow from my_ip_address
</Directory><Directory /var/www/munin/>
Order Deny,Allow
Deny from all
Allow from my_ip_address
</Directory>
перезапускаем apache — /etc/init.d/httpd restart
Редактируем /etc/munin/munin.conf
[имя_сервера]
address 127.0.0.1
use_node_name yes
Если необходимо мониторить несколько машин, добавляем соответствующие ноды. На этих машинах надо будет разрешить доступ на порт 4949, и в конфиг ноды прописать IP с которого будет обращатся munin.
Собственно на этом настройка munin завершена, осталось настроить munin-node.
Хочется добавить, что мониторинг работает как client-server, то есть client опрашивает все указанные ноды (nodes), в наше случае, нода будет одна, локальный сервер.
Редактирует /etc/munin/munin-node.conf , добавляем:
host_name имя_сервера
обращаем внимание на
allow ^127\.0\.0\.1$
именно здесь и придется вписать IP-адрес, если munin обращается с другой машины, в нашем случае ничего менять не надо.
Далее, редактируем файл /etc/munin/plugin-conf.d/munin-node и добавляем туда следующие строки:
[mysql*]
env.mysqlopts -u admin -pПароль #пароль admin-а к mysql - для Plesk соответствует паролю на панель.
env.mysqladmin /usr/bin/mysqladmin
env.mysqlshow /usr/bin/mysqlshow
[apache*]
env.ports 80
env.url http://localhost/server-status?auto
[bind9_rndc]
user root
env.querystats /var/cache/bind/named.stats
меняем права на файл:
chmod 640 /etc/munin/plugin-conf.d/munin-node
все-таки у нас там пароль в открытом виде.
Надо еще подредактировать файл настроек bind-а, для этого в секцию options добавляем:
statistics-file "/var/cache/bind/named.stats";
Хочу заметить, что в Plesk-панели, bind работает в chroot окружении в папке /var/named/run-root/ , соответственно, все пути будут относительно этой папки. Иногда сталкивался что rndc глючит с путями, поэтому создаю сим-линки и в пути от корня.
cd /var/named/run-root/var
mkdir -p cache/bind
chown named:named cache/bind
chown named:named cache
cd /var/named/run-root/var/cache/bind
touch named.stats
chown named:named named.stats
cd /var/cache/
mkdir bind
chown named:named bind
cd bind/
ln -s /var/named/run-root/var/cache/bind/named.stats ./
cd /var/run
ln -s /var/named/run-root/var/cache/bind/named.stats ./
cd /var/named/run-root/var/run
ln -s /var/named/run-root/var/cache/bind/named.stats ./
Далее перезапускаем bind — /etc/init.d/named restart
Мне пришлось еще поправить файл /etc/cron.d/munin из за того что у меня русская локаль и при отрисовке графиков, русские буквы не отрисовывались правильно:
*/5 * * * * munin LANG=C test -x /usr/bin/munin-cron && LANG=C /usr/bin/munin-cron
Вот и все, теперь достаточно зайти на http://адрес_вашего_сервера/munin/ и Вы сможете увидет статистику по многим параметрам сервера.
Отрисовка графиков по запросу
Для этого изменим некоторые параметры в конфигурации, редактируем /etc/munin/munin.conf, добавляем строки:
graph_strategy cgi
cgiurl_graph /munin/cgi/munin-cgi-graph
редактируем /etc/logrotate.d/munin , меняем
create 640 munin adm
на
create 660 munin apache
так же, необходимо поменять права на некоторые файлы:
chgrp apache /usr/share/munin/munin-graph
chgrp apache /var/log/munin /var/log/munin/munin-graph.log
chmod g+w /var/log/munin /var/log/munin/munin-graph.log
chgrp -R apache /var/www/munin/ваш_домен
chmod -R g+w /var/www/munin/ваш_домен
И наконец, необходимо за комментировать строчку в файле /usr/bin/munin-cron содержащую
/usr/share/munin/munin-graph
Теперь все графики будут создаваться при запросе, что существенно сократит потребление ресурсов при большом объеме графиков.
Удачи в настройках.
© shadow_alone
а сли при создании симлинка в логах вот такая ошибка: Symbolic link not allowed or link target not accessible . что делать?
Разобраться, почему невозможно создать симлинки (права, FS и т.д.).
Если Вы тупо копируете строки, то возможно у Вас просто нет цели для симлинка. Посмотрите что у Вас за система, и где что расположено.