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

Проверка возраста файлов с помощью обработчиков событий в nagios

Проблема, которую я пытаюсь решить: - Отслеживайте возраст файла журнала и, если он старше определенного порога, перезапустите несколько связанных служб.

Решение на данный момент: - Это довольно просто, и мы можем добиться этого с помощью обработчиков событий и стандартного плагина возраста файлов.

Сложность этой проблемы заключается в том, что в журнале появляется новая запись при перезапуске служб. В этом сценарии я перезапускаю службу через обработчик событий, как только вижу сбой (1-е мягкое состояние, т. Е. Не дожидаясь повторных проверок). Теперь первоначальная проверка заключалась в том, чтобы увидеть, старше ли файл журнала 90 минут, а интервал повторной проверки составляет 15 минут. Проблема в том, что при второй повторной проверке возраст файла будет меньше 90 минут, поэтому уведомление не будет отправлено.

У меня такой вопрос: - Есть ли способ изменить параметры проверки в середине обработчика событий? Это означает, что я могу снизить порог проверки, чтобы сказать 10 минут для второй проверки? - Есть ли более простое решение, чем просто отключить скрипт обработчика событий в течение определенного времени и вручную перепроверить (то есть через скрипт bash) возраст файла?

Временная шкала для дальнейшего прояснения проблемы (предположим, мы отслеживаем файл X, чтобы узнать, не превышает ли его возраст более 90 минут, а время повторной проверки при сбое составляет 15 минут):

20:27 - последняя модификация X, 22:00 - проверка завершилась ошибкой и срабатывает обработчик событий 22:00 - службы перезапускаются 22:00 - X обновляется из-за перезапуска службы 22:15 - X проходит перепроверку, поскольку возраст файла менее 90 минут.

В идеале проверка в 22:15 должна проверять, был ли файл старше 10 минут, чтобы увидеть, действительно ли файл журнала обновлен.

Любая помощь приветствуется!

Да, вы можете сделать это с помощью внешних команд, как описано в Адаптивный мониторинг документы

У вас есть обработчик событий, отправляющий внешнюю команду для изменения команды проверки и / или ее аргументов. Обязательно верните его в конце концов (например, при отправке уведомления).