Мониторинг серверов · 4 min read · Oct 20, 2025

Мониторинг сервера с помощью Munin и Monit на Ubuntu 16.04 LTS (Xenial Xerus)

Этот учебник покажет вам, как мониторить сервер Ubuntu 16.04 с помощью Munin и Monit. Munin создает красивые графики почти по всем аспектам вашего сервера, в то время как Monit проверяет доступность таких сервисов, как Apache, MySQL, Postfix и принимает соответствующие меры, такие как перезапуск, если обнаруживает, что сервис работает не так, как ожидалось. Сочетание этих двух инструментов дает вам полный мониторинг: графики, которые позволяют вам распознавать текущие или предстоящие проблемы, и сторожевой таймер, который обеспечивает доступность контролируемых сервисов. Этот учебник содержит две (необязательные) главы о интеграции Munin и Monit в ISPConfig 3.1.

1 Предварительная заметка

Имя хоста нашей системы - server1.example.com, и у нас есть веб-сайт www.example.com с корнем документа /var/www/www.example.com/web.

Следующие шаги необходимо выполнить от имени пользователя root. Чтобы стать пользователем root на вашем сервере, выполните эту команду:

sudo -s

Убедитесь, что система обновлена, прежде чем начинать установку Munin, выполните:

apt-get update  
apt-get upgrade

Apache используется для отображения страниц Munin, модуль apache fcgid необходим для функции масштабирования графиков Munin. Я установлю apache и модуль libapache2-mod-fcgid с помощью apt.

apt-get -y install apache2 libcgi-fast-perl libapache2-mod-fcgid

Включите модуль fcgid в apache.

a2enmod fcgid

2 Установка и настройка Munin

Чтобы установить Munin на Ubuntu 16.04, выполните следующие команды:

apt-get -y install munin munin-node munin-plugins-extra

Когда сервер работает с MySQL или MariaDB, включите несколько дополнительных плагинов Munin для мониторинга MySQL:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/mysql_ mysql_  
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes  
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries  
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries  
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

Далее мы должны отредактировать файл конфигурации Munin /etc/munin/munin.conf. Уберите комментарии с строк dbdir, htmldir, logdir, rundir и tmpldir (значения по умолчанию подходят). Мы хотим, чтобы Munin использовал имя server1.example.com вместо localhost.localdomain в HTML-выводе, поэтому мы заменяем localhost.localdomain на server1.example.com в разделе простой дерева хостов. Без комментариев измененный файл выглядит так:

nano /etc/munin/munin.conf
# Пример файла конфигурации для Munin, сгенерированного с помощью 'make build'
  
# Следующие три переменные указывают, где находятся RRD
# базы данных, HTML-вывод, журналы и файлы блокировки/pid. Все они
# должны быть записываемыми пользователем, выполняющим munin-cron. Все они
# по умолчанию имеют значения, которые вы видите здесь.
#  
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin  
  
# Где искать HTML-шаблоны
#  
tmpldir /etc/munin/templates  
  
# Где искать статические www файлы
#  
#staticdir /etc/munin/static  
  
# временные cgi файлы находятся здесь. обратите внимание, что они должны быть записываемыми
# пользователем cgi (обычно nobody или httpd).
#  
# cgitmpdir /var/lib/munin/cgi-tmp

# (Точно один) каталог для включения всех файлов.
includedir /etc/munin/munin-conf.d
[...]  
# простое дерево хостов  
[server1.example.com]  
 address 127.0.0.1  
 use_node_name yes
[...]  

Мы должны найти файл конфигурации Apache для Munin /etc/munin/apache.conf - он определяет псевдоним, называемый munin, для HTML-выходного каталога munin /var/cache/munin/www, что означает, что мы можем получить доступ к munin со всех веб-сайтов на этом сервере, используя относительный путь /munin (например, http://www.example.com/munin).

Теперь мы отредактируем файл munin.conf для Apache, чтобы разрешить доступ с внешних IP-адресов. Создайте резервную копию оригинального файла:

mv /etc/munin/apache24.conf /etc/munin/apache24.conf_bak

Откройте новый файл с помощью редактора:

nano /etc/munin/apache24.conf

И вставьте содержимое ниже:

Alias /munin /var/cache/munin/www  
  
 # Требовать локальный  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Требовать локальный  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Перезапустите Apache:

service apache2 restart

Затем перезапустите Munin:

service munin-node restart

Теперь подождите несколько минут, чтобы Munin мог создать свой первый вывод, а затем перейдите по адресу http://www.example.com/munin/ в вашем браузере, и вы увидите первые статистические данные:

Графики Munin.

(Это всего лишь небольшой фрагмент множества графиков, которые создает munin…)

3 Защита паролем каталога вывода Munin (необязательно, но настоятельно рекомендуется)

Теперь хорошей идеей будет защитить паролем каталог вывода munin, если вы не хотите, чтобы каждый мог видеть каждую мелкую статистику о вашем сервере.

Для этого мы должны создать файл паролей /etc/munin/munin-htpasswd. Мы хотим войти с именем пользователя admin, поэтому мы делаем это:

htpasswd -c /etc/munin/munin-htpasswd admin

Введите пароль для admin. Затем снова откройте /etc/munin/apache.conf…

nano /etc/munin/apache24.conf

… закомментируйте “Require all granted” и добавьте строки, которые я выделил красным:

Alias /munin /var/cache/munin/www  
  
 # Требовать локальный  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Требовать локальный  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Затем перезапустите Apache:

service apache2 restart

4 Включение дополнительных модулей в Munin

Команда Munin “munin-node-configure –suggest” может быть использована для получения рекомендаций по дополнительным модулям Munin, которые могут быть включены на сервере. Выполните:

munin-node-configure --suggest

Вывод должен быть похож на этот:

Рекомендации Munin

Столбец “used” показывает, включен ли модуль, столбец “Suggestions” показывает, работает ли на сервере сервис, который может быть мониторирован этим модулем. Создайте символическую ссылку для модуля в /etc/munin/plugins, чтобы включить его.

Здесь я включу модули apache_* в качестве примера:

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

Перезапустите Munin, чтобы загрузить новую конфигурацию.

service munin-node restart

5 Настройка Munin в ISPConfig (необязательно)

Панель управления хостингом ISPConfig имеет опцию для отображения данных Munin в модуле мониторинга ISPConfig. Данные Munin загружаются в iframe, так как большинство браузеров блокируют загрузку контента по http на https сайте, нам нужно будет найти способ доступа к статистике Munin через SSL. Самый простой способ - использовать vhost ISPConfig с включенным SSL для этого, создав символическую ссылку внутри веб-каталога ISPConfig на каталог данных Munin www.

ln -s /var/cache/munin/www /usr/local/ispconfig/interface/web/munin

Теперь мы можем получить доступ к Munin в браузере по адресу https://server1.example.com:8080/munin через apache vhost ISPConfig.

Следующий шаг - добавить конфигурацию в ISPConfig.

Войдите в ISPConfig как пользователь-администратор (admin) и перейдите в Система > Конфигурация сервера, заполните URL, имя пользователя и пароль для Munin, как показано ниже.

Настройки Munin в ISPConfig.

Убедитесь, что вы используете https:// и порт 8080 в URL munin.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.