Поиск по сайту:

Мониторинг сервера с помощью Munin и Monit в Debian


Это руководство существует для этих версий ОС

  • Debian 7 (хлюпающий)

На этой странице

  1. 1 Предварительное примечание
  2. 2 Установка и настройка Munin
  3. 3 Защитите паролем выходной каталог Munin (необязательно, но настоятельно рекомендуется)
  4. 4 Включите дополнительные модули в Munin

В этой статье я опишу, как вы можете контролировать свой сервер Debian 8 (Jessie) с помощью Munin и Monit. munin создает изящные небольшие графики почти для каждого аспекта вашего сервера (средняя нагрузка, использование памяти, использование ЦП, пропускная способность 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
# Example configuration file for Munin, generated by 'make build'

# The next three variables specifies where the location of the RRD
# databases, the HTML output, logs and the lock/pid files. They all
# must be writable by the user running munin-cron. They are all
# defaulted to the values you see here.
#
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin

# Where to look for the HTML templates
#
tmpldir /etc/munin/templates

# Where to look for the static www files
#
#staticdir /etc/munin/static

# temporary cgi files are here. note that it has to be writable by
# the cgi user (usually nobody or httpd).
#
# cgitmpdir /var/lib/munin/cgi-tmp # (Exactly one) directory to include all files from. includedir /etc/munin/munin-conf.d [...] # a simple host tree
[server1.example.com]
address 127.0.0.1
use_node_name yes [...]

Нам нужно найти файл конфигурации Apache 2.4 для Munin /etc/munin/apache24.conf — он определяет псевдоним munin для выходного HTML-каталога munins /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 grant и Options FollowSymLinks SymLinksIfOwnerMatch (в противном случае вы сможете получить доступ к выходным данным Munin только с локального хоста):

nano /etc/munin/apache24.conf
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
</Directory>

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>

Перезапустите Апач:

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

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

nano /etc/munin/apache24.conf

... закомментируйте \Требовать все предоставленные и добавьте строки, которые я отметил красным:

Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
# Require local
# Require all granted
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
Require valid-user
Options None
</Directory>

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
# Require local
# Require all granted
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
Require valid-user
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>

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

service apache2 restart

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

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

munin-node-configure --suggest

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

Столбец «используется» показывает, включен ли модуль, столбец «Предложения» показывает, запускает ли сервер службу, которую можно контролировать с помощью этого модуля. Создайте символическую ссылку для модуля в /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