Мониторинг сервера с помощью Munin и Monit в Ubuntu 16.04 LTS
Это руководство существует для этих версий ОС
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 14.04 LTS (Trusty Tahr)
На этой странице
- 1 Предварительное примечание
- 2 Установка и настройка Munin
- 3 Защитите паролем выходной каталог Munin (необязательно, но настоятельно рекомендуется)
- 4 Включите дополнительные модули в Munin
- 5 Настройте Munin в ISPConfig (необязательно)
В этом руководстве показано, как отслеживать сервер 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 upgrade
Apache используется для отображения страниц Munin, модуль apache fcgid требуется для функции масштабирования графика Munin. Я установлю apache и модуль libapache2-mod-fcgid с помощью apt.
apt-get -y install apache2 libcgi-fast-perl libapache2-mod-fcgid
Включите модуль fcgid в apache.
a2enmod fcgid
2 Установите и настройте 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
# 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 для Munin /etc/munin/apache.conf – он определяет псевдоним munin для выходного HTML-каталога munins /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
<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/apache.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
5 Настройте Munin в ISPConfig (необязательно)
Панель управления хостингом ISPConfig имеет возможность отображать данные Munin в модуле ISPConfig Monitor. Данные Munin загружаются в iframe, так как большинство браузеров блокируют загрузку содержимого с http на сайт https, нам придется найти способ доступа к статистике Munin через SSL. Самый простой способ — использовать для этого виртуальный хост ISPConfig с поддержкой SSL, создав символическую ссылку внутри веб-каталога ISPConfig на каталог данных Munin www.
ln -s /var/cache/munin/www /usr/local/ispconfig/interface/web/munin
Теперь мы можем получить доступ к Munin в браузере с помощью https://server1.example.com:8080/munin через виртуальный хост ISPConfig apache.
Следующим шагом будет добавление конфигурации в ISPConfig.
Войдите в ISPConfig как администратор (admin) и перейдите в System > Server config, введите URL-адрес, имя пользователя и пароль для Munin, как показано ниже.
Убедитесь, что вы используете https:// и порт 8080 в URL-адресе munin.