Мониторинг серверов. Часть 1. Или “настраиваем MonIT”

Рано или поздно в жизни админа возникает потребность в мониторинге своих серверов. Сегодня разберем простой случай. У нас есть один выделенный/виртуальный сервер на базе LINUX. На нем установлены web-сервер, ftp-сервер, MySQL, PHP, почтовый сервер и тому подобные.

Что мы далее будем вкладывать в понятие мониторинга нашего сервера?

  • мониторинг самой системы (состояние процессора, памяти…);
  • мониторинг состояния сервисов (запущен или нет);
  • мониторинг функционирования сервисов (отвечает ли корректно на запросы)
  • осуществлять контроль потребляемых сервисами ресурсами системы
  • уведомление по email и выполнение заданных действий по восстановлению работоспособности системы.


Было рассмотрено несколько систем мониторинга. Одни оказались перегружены функционалом либо платными. В итоге оптимальным вариантом был выбран Monit.
Monit – бесплатное приложение с открытым исходным кодом, предназначенное для комплексного мониторинга UNIX’о подобных систем. Полностью удовлетворяет нашим требованиям, а также при использовании в паре с M/Monit дает возможность использовать графический интерфейс для мониторинга нескольких серверов при помощи графического интерфейса. К сожалению программа платная, но на сайте есть и Free версия с некоторыми ограничениями функционала.

О мониторинге нескольких серверов и использовании графического интерфейса мы поговорим в следующей статье, а сейчас перейдем к установке и настройке Monit.

Для начала скачаем с официального сайта исходники monit, распакуем и сконфигурируем их:

# mkdir ~/distr
# cd ~/distr
# wget http://mmonit.com/monit/dist/monit-5.0.3.tar.gz
# tar -xvf monit-5.0.3.tar.gz
# cd monit-5.0.3
# ./configure

Весь недостающий софт, который может быть затребован на данном этапе, можно установить с репозитория с помощью apt-get, yum или портов в FreeBSD. Затем выполним установку monit:

# make
# make install

Теперь необходимо настроить и запустить сервис. Создадим основной файл конфигурации /usr/local/etc/monitrc и поместим туда строку

include /usr/local/etc/monitrc.d/*

подключающую дополнительные файлы настроек, которые будут находиться, соответственно, в папке /usr/local/etc/monitrc.d/

Теперь создадим файл конфигурации /usr/local/etc/monitrc.d/main.conf, в котором опишем слежение за основными параметрами системы:

set daemon 120 # Частота проверки сервисов.
set logfile syslog facility log_daemon # Syslogd facility.
set mailserver localhost, # Хост почтового сервера, через который пойдут уведомления.
set eventqueue # Разрешить очередь уведомлений.
basedir /var/log/monit.log # путь к каталогу, где будут храниться уведомления.
slots 100 # Максимальное количество уведомлений в очереди.

set mail-format { from: admin@MYSERVER.EXAMPLE.COM } # От какого имени рассылать уведомления.
set alert admin@same-mail.com # Email для всех уведомлений
set alert admin@same-mail.com { timeout } # Email для критических уведомлений (падение сервера\демонов).

check system MYSERVER.EXAMPLE.COM # Хост сервера.
if loadavg (1min) > 6 then alert
if loadavg (5min) > 3 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 50% then alert
if cpu usage (wait) > 40% then alert

Сохраним, затем нужно установить на файлы конфигурации права 0700 (по крайней мере у меня monit потребовал выставить именно такие права доступа). Теперь, чтобы запустить сервис, достаточно выполнить команду:

monit

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

2 Responses to “Мониторинг серверов. Часть 1. Или “настраиваем MonIT””

  1. […] тебя уважаемый читатель. Как и обещал в предыдущей статье об использовании MonIT, я расскажу как с помощью M/Monit можно следить за […]

Leave a Reply to Escimo




*