Рассмотрим как организовать мониторинг сайта с помощью 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 unmonitor all
monit monitor all
Читайте также про Monit Gui — веб-интерфейс, через который можно выполнять настройки и про базовую настройку Monit.