Monit - мониторинг состояния процессов.

О monit.

Monit позволяет:

  • Отслживать состояние Запущенных процессов, потребление ими ресурсов, доступность/ответы на сокетах и портах, и.т.п.
  • Следить за файлами и каталогами по правам, контрольным суммам, времени модификации, размеру.
  • Тестировать сетевые подключения, по TCP, UDP, через сокеты и по более высокоуровневым протоколоам, таким как HTTP или SMTP, причём возможности проверки таких протоколов расширяемы, т.к. имеется возможность посылки произвольных данных и проверки ответа.
  • Запускать пользовательские скрипты, и анализировать код завершения, и таким образом можно сильно расширить возможности проверки.
  • Следить за ресурсами сервера - загрузкой процессора, памяти, Load Average.

При этом monit, это не только система мониторинга - он может не только следить и отправлять уведомления при определённых событиях, но и автоматически выполнять определённые действия, например перезапуск упавшего процесса, что позволяет сделать систему более устойчевой и автономной.

Также monit имеет встроенный веб сервер с поддержкой http, https. Это позволяет отслеживать состояние системы и управлять monit используя обычный браузер.

 

Установка и начальная настройка.

Для установки имеет смысл воспользоваться пакетным менеджером вашей ОС. например:

Debian, Ubuntu:

#sudo apt-get install monit

Gentoo:

#emerge monit

Для настройки monit используется файл конфигурации monitrc, чаще всего он находится в каталоге /etc или /etc/monit. Используюется свой скриптовый язык Domain Specific Language (DSL). Комментарии начинаются с #.

Конфигурационный файл состоит из нескольких логических секций:

  • Глобальные параметры, в формате set <параметр> <значение>.
  • Описание сервисов, в формате check <тип сервиса> <различные пареметры>
  • Дополнительные файлы конфигурации include <имя файла>, с помощью которых можно удобно настраивать отслеживание отдельных сервисы в отдельных файлах. Также поддерживаются символы замены, например include /etc/monit.d/*.cfg

Сервисы могут быть объеденены в группы, и управляться на уровне групп.

 

Примеры конфигурации для контроля различных процессов.