Monit — это легковесная система мониторинга серверов, имеющая открытый исходный код. Monit устанавливается на сервер и обеспечивает возможность отправки уведомлений в случае обнаружения проблем. Кроме того, Monit может автономно выполнять определенное действие в качестве реакции на заданные события.
Monit — самостоятельный демон, работающий от пользователя root. Демон работает на Linux, Free/Net/OpenBSD, SUN Solaris. У Monit есть собственный HTTP- сервер, но учтите, что он работает с рутовыми привилегиями, но иметь доступ к веб-консоли может быть крайне полезным. Обзор лучших сервисов для мониторинга сайтов
M\Monit — коммерческая надстройка над Monit, средство централизованного мониторинга, с помощью которого можно отслеживать состояние нескольких серверов с одного графического интерфейса.
Монит есть практически во всех широко распространенных дистрибутивах (Ubuntu, Debian, CentOS, FreeBSD и Suse) и устанавливается он стандартным для операционной системы способом. Например, для Ubuntu и Debian:
apt install monit
После установки в системе появится собственно демон (monit) и файл конфигурации, который живет тут:
# Linux, Solaris: /etc/monit/monitrc # FreeBSD/OpenBSD/NetBSD /usr/local/etc/monitrc
Конфиг подробно документирован.
# процесс работает как демон, цикл проверки - 120 секунд.
# длительность цикла можно менять, это основная единица времени для monit.
# Раз в цикл срабатывают проверки и выполняются команды от админа, присланные через веб-интерфейс
set daemon 120
# сервера, через которые пойдет почтовое уведомление. Можно делать несколько, очередность срабатывания повторяет очередность внесения
set mailserver mail.dieg.info 10025,
localhost
# кто получит уведомление?
set alert darkfire@dieg.info
В браузере monit доступен по адресу порту 2812
http://xxx.xxx.xxx.xxx:2812/
xxx.xxx.xxx.xxx - IP-адрес сервера, на котором Вы произвели установку monit (обязательно меняем на свой )
Проверка запущен ли демон Redis
check host redis.host with address 127.0.0.1
if failed port 6379 protocol redis then alert
check process redis-server with pidfile "/var/run/redis/redis-server.pid"
start program = "/etc/init.d/redis-server start"
stop program = "/etc/init.d/redis-server stop"
if failed host 127.0.0.1 port 6379 then restart
if 5 restarts within 5 cycles then timeout