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