Назад | Перейти на главную страницу

Можно ли настроить Monit так, чтобы никогда не отключать / отключать службу?

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

Моя конфигурация Monit будет настроена следующим образом:

set daemon 10
set logfile /var/log/monit.log
set statefile /var/lib/monit/monit.state
set alert foo@example.com not { nonexist, action, instance }
include /etc/monit/conf.d/*

А это пример набора правил Monit, который я использую:

check process myservice
  with pidfile /var/run/myservice/myservice.pid
  start program = "/home/myservice/current/start-myservice.sh"
    as uid myservice and gid myservice
  stop program = "/home/myservice/current/stop-myservice.sh"
    as uid myservice and gid myservice
  mode active

В моем окружении я хочу, чтобы он продолжал пробовать интервалы опроса бесконечно. Есть ли способ настроить monit на никогда прекратить мониторинг службы, даже если она не запускается?

Я бы просто использовал задание cron, которое запускало бы monit start servicename с желаемыми интервалами. Конечно, вы можете использовать группы для более точного управления.

Покопавшись, выясняется, что Monit хранит данные системного мониторинга в файле «состояния». И этот файл «состояния» отслеживает, какие службы отслеживаются / не отслеживаются.

Так что, хотя это немного «грубая сила», это определенно работает. Если служба становится «неконтролируемой» из-за чего-то вроде тайм-аута, просто удалите файл состояния Monit из системы следующим образом:

sudo rm /var/lib/monit/state

А затем перезапустите Monit вот так, и все должно быть хорошо:

sudo service monit restart

У меня была точно такая же проблема, когда, несмотря на перезапуск monit, он отказывался отслеживать после тайм-аута. Наконец выяснилось, что пришлось удалить файл состояния монитора (/var/.monit.state) и перезапустите monit, чтобы снова запустить мониторинг всех программ.

Судя по фрагменту кода Monit, похоже, что вам нужно изменить или добавить операторы цикла в раздел вашего процесса. Увидеть соответствующая документация здесь и Вот.

Похоже, вы можете настроить тесты службы на выполнение каждого цикла без указания времени ожидания. Также загляните на свою домашнюю страницу monit по адресу http: // имя хоста: 2812. Check the page for the relevant service and look at поле «Существование». Ваш вариант по умолчанию должен выглядеть так:

If doesn't exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert