Monit

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

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

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

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

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

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

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

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

Установка

Пройдите в раздел Система -> Прошивка -> Обновления. На вкладке Плагины нажмите на кнопку + напротив плагина os-monit для его установки.

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

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

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

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

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

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

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

_images/monit01.jpg

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

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

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

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

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

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

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

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

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

_images/monit02.jpg

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

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

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

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

Тип - тип проверки сервиса (Process, File, Fifo, Filesystem, Directory, Remote Host, System, Custom, Network)

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

_images/monit03.jpg

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

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

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

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

_images/monit04.jpg

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

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

_images/monit-squid1.jpg

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

_images/monit-squid2.jpg

Нажимаем Сохранить изменения и Перезагрузить конфигурацию.

Для проверки мониторинга остановим сервис squid в меню Сводка: Инструментальная панель виджет Службы. В течение 120 секунд squid будет запущен системой мониторинга Monit.