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-аторизация.
Защищённое соединение - если почтовый сервер использует шифрование.

В Расширенном режиме есть возможность установить собственный веб-сервер Monit, запущенный на порту 2812. Чтобы настроить веб-интерфейс, установите флаг Enable HTTPD. В строке Monit HTTPD Access List нужно внести имя пользователя и пароль Monit в формате user:password и список IP-адресов или сетей, с которых будет разрешен доступ к веб-интерфейсу Monit. Также есть возможность настроить платную надстройку над Monit - M/Monit.
Нажимаем Применить
На вкладке Настройка сообщений настраиваются параметры для почтовых сообщений. Есть возможность настроить для каждого типа событий своего получателя.
Включить сообщения устанавливаем флаг.
Получатель - E-mail адрес для отправки оповещений.
Не для следующих - если параметр включен, то будут отсылаться все уведомления, кроме тех, что указаны в параметре События.
События - список событий, при срабатывании которых будут отсылаться уведомления. Если оставить поле пустым, то уведомления будут отсылаться для всех событий.
Формат почты - тема отсылаемого сообщения, например Subject: $SERVICE on $HOST failed.
Напоминание - через какое количество срабатываний посылать повторное уведомление, по умолчанию 10.

На вкладке Настройка службы настраиваются проверяемые сервисы.
После установки предустановлены два примера $HOST - загрузка процессора, памяти, средняя загрузка и RootFs - занимаемое место на корневой файловой системе.
Включить проверки служб - включение/отключение проверки сервиса
Имя - имя сервиса
Тип - тип проверки сервиса (Process, File, Fifo, Filesystem, Directory, Remote Host, System, Custom, Network)
Тесты - список с тестами сервисов (описание тестов на вкладке Настройка тестов служб)

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

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

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

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