Thank you for reading this post, don't forget to subscribe!
Munin является системой для мониторинга которая распространяется совершенно бесплатно и с открытым исходным кодом которая написана на Perl и использует RRDtool для создания графиков , которые доступны через веб-интерфейс, которая служит для мониторинга всех ваших компьютеров в сети. Munin предоставляет мониторинг с оповещением для серверов, коммутаторов, приложений и услуг.
Для начала нужно установить репозиторий EPEL
создадим пользователя под которым будет работать munin
adduser munnin
После того как подключили репозиторий EPEL, установка выполняется в одну команду
yum --enablerepo=epel install munin munin-node rrdtool
По умолчанию Munin создает конфигурационный файл конфигурации Apache в файле /etc/httpd/conf.d/munin.conf.
Приведём данный конфигурационный файл к следующему виду(так как у нас php работает как fastcgi, то):
cat /etc/httpd/conf.d/munin.conf
<VirtualHost *:8080>
ServerName munin.example.com
ServerAlias munin.*
ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph
DocumentRoot /var/www/munin/site/munin
ErrorLog /var/www/munin/logs/munin.error.log
CustomLog /var/www/munin/logs/munin.access.log common
<IfModule mod_fcgid.c>
SuexecUserGroup munin munin
<Directory /var/www/munin/site/munin>
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/munin/php-cgi/php.cgi .php
Order allow,deny
Allow from all
</Directory>
</IfModule>
</VirtualHost>
cat /var/www/munin/php-cgi/php.cgi
#!/bin/sh
PHPRC=/var/www/munin/php-cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=500
exec /usr/bin/php-cgi
Чтобы доступ был запаролен, нужно добавить следующую запись в конфиг, после строки (<Directory /var/www/munin/site/munin>):
AuthUserFile /etc/munin/munin-htpasswd
AuthName "munin_admin"
AuthType Basic
require valid-user
Создадим пользователя ( я его назвал admin) и назначим ему пароль, для этого выполните:
htpasswd -cm /etc/munin/munin-htpasswd admin
(пароль я указал 1)
Конфиг nginx будет выглядеть следующим образом:
cat /etc/nginx/conf.d/munin.conf
server {
listen 80;
server_name munin.*;
access_log /var/www/munin/logs/munin.nginx.access.log combined;
error_log /var/www/munin/logs/munin.nginx.error.log error;
client_max_body_size 20m;
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|swf|js|html|htm|)$ {
root /var/www/munin/site/munin;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
}
}
создаём домашнюю директорию:
mkdir /var/www/munin/site/munin
логи:
mkdir /var/www/munin/logs/
touch /var/www/munin/logs/munin.nginx.access.log combined
touch /var/www/munin/logs/munin.nginx.error.log error
touch /var/www/munin/logs/munin.error.log
touch /var/www/munin/logs/munin.access.log
Правим конфиг:
/etc/munin/munin.conf
раскомментируем:
dbdir /var/lib/munin
htmldir /var/www/munin/site/munin
logdir /var/log/munin
rundir /var/run/munin
Перемещаем файлы в нашу директорию:
cp -r /var/www/html/munin/* /var/www/munin/site/munin/
правим владельца:
chown -R munin:munin /var/www/munin/
стартуем munin
/etc/init.d/munin-node start
перезапускаем апач и nginx
/etc/init.d/httpd restart
/etc/init.d/nginx restart
Теперь munin доступен по субдомену
http://munin.domen/
Добавить новый сервер для мониторинга
Чтобы добавить новый сервер для мониторинга нужно на всех клиентских системах запустить и установить пакет munin-node:
добавим репозиторий epel:
yum install -y epel-release
yum install munin-node -y
Установить то установили, но нужно еще добавить конфигурацию.
nano /etc/munin/munin-node.conf
Укажите в Munin ваш IP адрес нового сервера:
[…]
host_name your_new_HOST
[…]
allow ^78\.140\.189\.243$
allow ^::1$
Сохраните и закройте этот файл. Где, your_new_HOST это мой новый клиент — сервер. 78.140.189.243 это мой айпишник на котором висит Munin.
Запустите сервис munin-node в Munin на клиентском сервере:
service munin-node start
chkconfig munin-node on
Затем перейдите к вашему серверу Munin и добавьте имя хоста вашей новой клиент-системы и IP-адрес в конец добавим следующее содержание:
nano /etc/munin/munin.conf
Добавьте следующие строки.
[your_new_HOST]
address your_IP_clients_server
use_node_name yes
Сохраните и закройте. Перезапустите службу Munin. Подождите пару минут (примерно 5 минут) или перезагрузить сервер Munin, чтобы Munin создал необходимые файлы / папки для вашей цели мониторинга.
Плагины в Munin.
По умолчанию есть только несколько пунктов для мониторинга (плагинов) и они будут отображены в интерфейсе Munin. Но есть много других полезных плагинов и мы можем добавить их если нам нужно.
Эти детали можно найти в каталоге /usr/share/munin/plugins/.
Например, мы хотим добавить MySQL плагин. Чтобы сделать это, нужно создать символическую ссылку к плагинам, как показано ниже.
ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/
Перезапустите службу munin-node на вашем сервере.
service munin-node restart
Подождите 5 минут и вы увидите что элементы MySQL будет добавлены.