Ответ 1
Эта строка:
if does not exist for 3 cycles then restart
Означает следующее:
Не выполняйте никаких действий, пока вы не проверите 3 раза, что служба не существует, а затем перезапустите ее. Такое поведение описывается в документации на monit как "Отказоустойчивость":
ОТВЕТСТВЕННОСТЬ ТОЛЕРАНТНОСТЬ
По умолчанию действие выполняется, если оно соответствует, и набор сервисов в состоянии ошибки. Тем не менее, вы можете потребовать, чтобы тест потерпел неудачу больше, чем один раз перед запуском события ошибки и изменением состояния службы не удалось. Это полезно, чтобы избежать получения предупреждений о ложных ошибках, что может произойти, особенно с сетевыми тестами.
Синтаксис:
ДЛЯ ЦИКЛОВ... или:
[ВРЕМЯ ВНУТРИ] ЦИКЛОВ...
Соответственно, Monit не изменит статус сервиса до тех пор, пока он не завершится в течение следующих циклов X. Чтобы подтвердить это выражение, просто удалите ошибку для этой службы и используйте только:
if does not exist then alert
остановить службу вручную и подтвердить, что команда
monit status
показывает статус "Не существует", как только вы его остановите.
Итак, вернемся к вашим вопросам:
- Да, можно отправить предупреждение (по электронной почте) в течение 1 цикла. Для что вам необходимо определить вариант "если не существует, а затем предупредить" для этой службы и правильно настроить Email-Alerts. Предполагая, что вы например, использовать внешний eMail-сервер, вам необходимо определить не менее двух (пример конфигурации с gmail):
КОНФИГУРАЦИЯ SMTP SERVER
set mailserver smtp.gmail.com PORT 587 USERNAME "[email protected]" PASSWORD "xxxxx" using TLSV1 with timeout 30 seconds
(Имейте в виду, что в gmail вы должны активировать доступ для "незащищенных" приложений, чтобы разрешить monit использовать службу stmp)
и
EMAIL RECIPIENT
set alert [email protected]
как в файле /etc/monit/monitrc. Более подробную информацию об этих двух строках см. В официальной документации.
- Что касается документации, невозможно сразу же обновить статус службы, если определен отказ от отказов (выполнить действие после X циклов). Но вы все равно можете настроить оповещения для немедленного отправки и перезапустить службу в течение требуемых циклов.
Литература:
Документация Monit: https://mmonit.com/monit/documentation/monit.html
Надеюсь, что это поможет!
Привет