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

Мониторинг сервера с помощью munin и monit на Debian Wheezy

Мониторинг сервера с помощью munin и monit на Debian Wheezy

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

В этой статье я опишу, как вы можете мониторить свой сервер Debian Wheezy с помощью munin и monit. munin создает симпатичные графики почти по каждому аспекту вашего сервера (средняя загрузка, использование памяти, использование ЦП, пропускная способность MySQL, трафик eth0 и т. д.) без особой настройки, в то время как monit проверяет доступность таких сервисов, как Apache, MySQL, Postfix и принимает соответствующие меры, такие как перезапуск, если обнаруживает, что сервис работает не так, как ожидалось. Комбинация этих двух инструментов дает вам полный мониторинг: графики, которые позволяют вам распознавать текущие или предстоящие проблемы (например, “Нам скоро нужен больший сервер, наша средняя загрузка быстро растет.”), и сторожевой пес, который обеспечивает доступность контролируемых сервисов.

Хотя munin позволяет вам мониторить более одного сервера, здесь мы обсудим только мониторинг системы, на которой он установлен.

Этот учебник был написан для Debian Wheezy, но конфигурация должна применяться и к другим дистрибутивам с небольшими изменениями.

Я хочу сначала сказать, что это не единственный способ настройки такой системы. Существует много способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!

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

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

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

Чтобы установить munin на Debian Wheezy, мы делаем следующее:

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

Включите несколько дополнительных плагинов munin:

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 в разделе простой древовидной структуры хоста. Без комментариев измененный файл выглядит так:

vi /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/apache2/conf.d/munin (который на самом деле является символической ссылкой на /etc/munin/apache.conf) - он определяет псевдоним, называемый munin, для HTML-выходного каталога munin /var/cache/munin/www, что означает, что мы можем получить доступ к munin со всех веб-сайтов на этом сервере, используя относительный путь /munin (например, http://www.example.com/munin).

Убедитесь, что вы закомментировали строку Allow from localhost 127.0.0.0/8 ::1 и добавили Allow from all вместо этого (в противном случае вы сможете получить доступ к выводу munin только с localhost):

vi /etc/apache2/conf.d/munin

| # Включите это для генерации шаблонов Alias /munin /var/cache/munin/www # Включите это для шаблонов на основе cgi #Alias /munin-cgi/static /var/cache/munin/www/static #ScriptAlias /munin-cgi /usr/lib/munin/cgi/munin-cgi-html # # Order allow,deny # Allow from localhost 127.0.0.0/8 ::1 # AuthUserFile /etc/munin/munin-htpasswd # AuthName "Munin" # AuthType Basic # require valid-user # Order allow,deny #Allow from localhost 127.0.0.0/8 ::1 Allow from all Options None # Этот файл может быть использован как файл .htaccess или часть вашего файла конфигурации apache. # # Для того, чтобы опция файла .htaccess работала, каталог www munin # (/var/cache/munin/www) должен иметь "AllowOverride all" или что-то # близкое к этому. # # AuthUserFile /etc/munin/munin-htpasswd # AuthName "Munin" # AuthType Basic # require valid-user # Эта следующая часть требует, чтобы mod_expires был включен. # # Установите время истечения по умолчанию для файлов на 5 минут 10 секунд с момента # их создания (изменения). Вероятно, к тому времени появятся новые файлы. # ExpiresActive On ExpiresDefault M310 [...] |

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

/etc/init.d/apache2 restart

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

/etc/init.d/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/apache2/conf.d/munin…

vi /etc/apache2/conf.d/munin

… и раскомментируйте следующий раздел:

| [...] AuthUserFile /etc/munin/munin-htpasswd AuthName "Munin" AuthType Basic require valid-user [...] |

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

/etc/init.d/apache2 restart
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.