Мониторинг серверов · 4 min read · Oct 15, 2025
Мониторинг сервера с помощью Munin и Monit на Debian 8 (Jessie)
В этой статье я опишу, как вы можете мониторить свой сервер Debian 8 (Jessie) с помощью Munin и Monit. munin создает симпатичные графики почти по каждому аспекту вашего сервера (средняя загрузка, использование памяти, использование CPU, пропускная способность MySQL, трафик eth0 и т.д.) без особой настройки, в то время как Monit проверяет доступность таких сервисов, как Apache, MySQL, Postfix и принимает соответствующие меры, такие как перезапуск, если обнаруживает, что сервис работает не так, как ожидалось. Сочетание этих двух дает вам полный мониторинг: графики, которые позволяют вам распознавать текущие или предстоящие проблемы (например, “Нам скоро нужен более мощный сервер, наша средняя загрузка быстро растет.”), и сторожевой пес, который обеспечивает доступность контролируемых сервисов.
Хотя Munin позволяет вам мониторить более одного сервера, здесь мы обсудим только мониторинг системы, на которой он установлен.
Этот учебник был написан для Debian 8 (Jessie), но конфигурация должна применяться и к другим дистрибутивам, таким как Ubuntu, с небольшими изменениями.
Я хочу сказать сначала, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Имя хоста нашей системы - server1.example.com, и у нас есть веб-сайт www.example.com на нем с корнем документа /var/www/www.example.com/web.
Убедитесь, что система обновлена, прежде чем начинать установку Munin, выполните:
apt-get update
apt-get upgradeApache используется для отображения страниц Munin, модуль apache fcgid необходим для функции увеличения графиков Munin. Установите apache и модуль fcgid с помощью apt.
apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgidВключите модуль fcgid в apache.
a2enmod fcgid2 Установка и настройка Munin
Чтобы установить Munin на Debian Jessie, мы делаем это:
apt-get 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_innodb mysql_innodb
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
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 2.4 для Munin /etc/munin/apache24.conf - он определяет псевдоним, называемый munin, для HTML-выходного каталога munin /var/cache/munin/www, что означает, что мы можем получить доступ к munin со всех веб-сайтов на этом сервере, используя относительный путь /munin (например, http://www.example.com/munin).
Конфигурация apache Munin не включена по умолчанию, это было изменено с DebianWheezy на Jessie. Новый каталог конфигурации - /etc/apache2/conf-enabled вместо /etc/apache2/conf.d, который использовался в более старых версиях, таких как Wheezy и Squeeze.
Выполните эти команды, чтобы включить и загрузить конфигурацию в apache.
cd /etc/apache2/conf-enabled/
ln -s /etc/munin/apache24.conf munin.conf
service apache2 restartУбедитесь, что вы закомментировали строку Require local и добавили Require all granted и Options FollowSymLinks SymLinksIfOwnerMatch вместо этого (в противном случае вы сможете получить доступ к выводу Munin только с localhost):
nano /etc/munin/apache24.confAlias /munin /var/cache/munin/www
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
# Require local
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/apache24.conf…
nano /etc/munin/apache24.conf… закомментируйте “Require all granted” и добавьте строки, которые я отметил красным:
Alias /munin /var/cache/munin/www
# Require local
# 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 local
# 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 restartGet new posts in your inbox
No spam. Unsubscribe anytime.