Мониторинг серверов · 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 upgradeApache используется для отображения страниц Munin, модуль apache fcgid необходим для функции масштабирования графиков Munin. Я установлю apache и модуль libapache2-mod-fcgid с помощью apt.
apt-get -y install apache2 libcgi-fast-perl libapache2-mod-fcgidВключите модуль fcgid в apache.
a2enmod fcgid2 Установка и настройка 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…)
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 restart4 Включение дополнительных модулей в Munin
Команда Munin “munin-node-configure –suggest” может быть использована для получения рекомендаций по дополнительным модулям Munin, которые могут быть включены на сервере. Выполните:
munin-node-configure --suggestВывод должен быть похож на этот:

Столбец “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 restart5 Настройка 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, как показано ниже.

Убедитесь, что вы используете https:// и порт 8080 в URL munin.
Get new posts in your inbox
No spam. Unsubscribe anytime.