Monit

Monit - небольшая утилита с открытым исходным кодом для мониторинга Unix-систем с возможностью выполнения скриптов в качестве реакции на заданное событие. Документация и примеры использования доступны по адресу http://mmonit.com/monit

Программа имеет следующую функциональность:

  • Отслеживание состояния серверов (доступность, потребление ресурсов)

  • Мониторинг демонов (состояние, потребляемые ресурсы, количество child-process и многое другое).

  • Мониторинг сетевых сервисов (возможность подключения и корректность ответа).

  • Выполнение встроенных или собственных (с помощью скриптов) действий при достижении определенных событий.

  • Отправка уведомлений на Email или в централизованный web-интерфейс M/Monit (коммерческая надстройка над Monit).

Поддерживаются ОС GNULinux, FreeBSD, OpenBSD, Solaris, Mac OS X, AIX.

Настройка функционала

Настройка функционала осуществляется в разделе Службы ‣ Monit ‣ Настройки.

На вкладке Основные настройки установите флаг Включить Monit.

В поле Адрес почтового сервера необходимо указать IP-адрес почтового сервера.

В строке Порт почтового сервера необходимо указать номер порта, на котором ваш почтовый сервер принимает соединения.

Имя пользователя для почтового пользователя и Пароль для почтового сервера - если используется smtp-аторизация.

SSL-соединение соединение с почтовым сервером - если почтовый сервер использует шифрование.

../_images/monit-main-settings.png

В Расширенном режиме есть возможность установить собственный веб-сервер Monit, запущенный на порту 2812. Чтобы настроить веб-интерфейс, установите флаг Включить HTTPD. В строке Список доступа к Monit HTTPD нужно ввести имя пользователя и пароль в формате user:password и список IP-адресов или сетей, с которых будет разрешен доступ к веб-интерфейсу Monit. Также есть возможность настроить платную надстройку над Monit - M/Monit.

Нажимаем Применить

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

Включить сообщения - устанавливаем флаг.

Получатель - E-mail адрес для отправки оповещений.

Не для следующих - если параметр включен, то будут отсылаться все уведомления - кроме тех, что указаны в параметре События.

События - список событий, при срабатывании которых будут отсылаться уведомления. Если оставить поле пустым, то уведомления будут отсылаться для всех событий.

Формат почты - тема отсылаемого сообщения, например Subject: $SERVICE on $HOST failed.

Напоминание - через какое количество срабатываний посылать повторное уведомление, по умолчанию: 10.

../_images/monit-alerts-settings.png

На вкладке Настройка службы настраиваются проверяемые сервисы.

После установки предустановлены два примера $HOST - загрузка процессора, памяти, средняя загрузка и RootFs - занимаемое место на корневой файловой системе.

Включить проверки служб - включение/отключение проверки сервиса

Имя - имя сервиса

Тип - тип проверки сервиса (Процесс, Файл, Fifo, Файловая система, Директория, Удалённый хост, Система, Настроенное пользователем, Сеть)

Тесты - список с тестами сервисов (описание тестов на вкладке Настройка тестов служб).

../_images/monit-services-settings.png

На вкладке Настройка тестов служб настраиваются условия для срабатывания тестов служб.

Имя - Имя теста

Условие - Условие проверки

Действие - какое действие будет выполнено при срабатывании условия.

../_images/monit-tests-settings.png

Пример использования

Настроим мониторинг прокси-сервера squid и, в случае, если он не отвечает, перезапускаем сервис. В меню Службы ‣ Monit ‣ Настройки ‣ Настройка тестов служб создадим новое условие squid_check, в котором мы проверяем доступность сервиса на порту 3128.

../_images/monit-squid1.png

Нажимаем Сохранить изменения. На вкладке Настройка службы добавим новую проверку службы с параметрами, указанными на рисунке.

../_images/monit-squid2.png

Нажимаем Сохранить изменения и Применить.

Для проверки мониторинга остановим сервис squid в меню Сводка ‣ Инструментальная панель виджет Службы.

В течение 120 секунд squid будет запущен системой мониторинга Monit.