Легковесный мониторинг с Monit

Пост выходного дня про мониторинг     Потребовалось мне внезапно мониторить определённые процессы на роутере с OpenWRT и перезапускать их, если упали.     Первая мысль была — просто в cron добавить принудительный перезапуск раз в N минут. Но это вариант с дурным запахом, прямо скажем. Ибо:   • будут лишние перезапуски, когда не надо   • будет задержка запуска, когда сервис реально упал     К счастью, беглый поиск познакомил меня с отличным легковесным решением для мониторинга — Monit.     Что может мониторить:   🔹 существование процесса (по PID или регулярке)   🔹 сетевые порты   🔹 ответы сервисов (HTTP, SMTP, SSH)   🔹 потребление ресурсов процессом   🔹 файловую систему (наличие файлов, каталогов, права, место)   🔹 контрольные суммы MD5   🔹 код возврата скриптов/программ     Что может делать при срабатывании:   🔸 перезапустить процесс   🔸 отправить уведомление на почту   🔸 выполнить кастомный скрипт   🔸 выждать время (на случай самовосстановления)   🔸 работать с ФС (монтирование и т.д.)     Плюшки:   ✓ Лёгкий — идеально для роутеров   ✓ Гибкий — условия и действия комбинируются   ✓ Простой — конфиг в одном файле     Пример конфига для Nginx:

check process nginx with pidfile /var/run/nginx.pid      start program = "/etc/init.d/nginx start"      stop program = "/etc/init.d/nginx stop"      if failed port 80 protocol http then restart

Итог:   Если нужно простое и эффективное решение для мониторинга — Monit рулит.    📩 Мои контакты:   🔹 Телеграм-канал  🔹 Сайт-визитка  🔹 Профиль в Сетке

Легковесный мониторинг с Monit | Сетка — социальная сеть от hh.ru