Мониторинг сайта с помощью Monit в Linux


Рассмотрим как организовать мониторинг сайта с помощью Monit на удаленном Linux сервере. Потребуется отдельная машина как сервер мониторинга и сайт, который будем проверять.

Пакет Monit обычно используется для отслеживания состояния того сервера, на котором он запущен. Также можно настроить Monit на удаленной машине.



Конфигурационному файлу можно дать любое имя, главное — он должен находиться в директории /etc/monit/conf.d/. Файлы подключаются в /etc/monit/monitrc.



Мониторинг сайта с помощью Monit


Добавим файл lemp-external. Это имя говорит о том, что проверяются компоненты lemp стэка (Linux Nginx MySQL PHP).



mcedit /etc/monit/conf.d/lemp-external


По одному приведем блоки конфигурации с проверками. На сервере блоки можно добавить подряд. Вместо example.com указывается тот домен, для которого настраиваем мониторинг доступности сайта.

В конфигурационном файле задается проверка ICMP ответа и доступности по HTTP/HTTPS. Если 5 проверок подряд показывают, что ответа нет — формируется alert.



Настройки можно разделять переносами строк для наглядности, можно добавлять подряд. Для Monit разницы нет.


Проверка ICMP и HTTP для портов 80 и 443


Базовые проверки доступности по сети и ответа веб-сервера.


check host example.com with address example.com
if failed icmp type echo for 5 times within 5 cycles then alert
if failed port 80 protocol http for 5 times within 5 cycles then alert
if failed port 443 type tcpSSL protocol http for 5 times within 5 cycles then alert



Проверка DNS:


Проверяются доменные сервера, на которые делегирован домен (о том как проверить DNS записи).

В примере это ns1.example.com. Всегда используется минимум 2 NS, поэтому блока будет два.


check host ns1.example.com with address ns1.example.com if failed port 53 type udp protocol dns then alert



Проверка SMTP:


Проверка возможности подключения к стандартному порту почтового сервера. В примере адреас smtp.example.com.


check host smtp.example.com with address smtp.example.com if failed port 25 type tcp protocol smtp then alert



Проверка URL


HTTP проверка для опеределенного URL на сайте. Им может быть любая стсраница на сайте.


check host example.com with address example.com if failed port 443 type tcpSSL protocol http request "/contacts" for 5 times within 5 cycles then alert



После внесения изменений нужно проверить синтаксис

monit -t



Если ошибок нет — перезапускаем службу, убеждаемся в том, что она запустилась

/etc/init.d/monit restart



Пример на скриншоте:

Мониторинг сайта с помощью Monit


Мониторинг можно приостанавливать и возобновлять

monit unmonitor all

monit monitor all



Читайте также про Monit Gui — веб-интерфейс, через который можно выполнять настройки и про базовую настройку Monit.

Сказать спасибо