Мониторинг серверов · 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 upgrade

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

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

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

a2enmod fcgid

2 Установка и настройка 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.conf
Alias /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

(Это всего лишь небольшой фрагмент множества графиков, которые создает 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 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
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.