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

мониторинг частоты ошибок с помощью monit

Есть ли способ сообщить monit, чтобы он предупреждал меня, если в файле журнала за определенное время будет больше X ошибок (например, строк, соответствующих "ERROR")?

Мой вариант использования: ошибки иногда появляются в моем файле журнала (например, сетевые ошибки, сбой удаленного сервера и т. Д.), И они не критичны. Но я хотел бы получить уведомление, если произойдет всплеск, потому что это потребует быстрого расследования (например, неудачное развертывание, недавно появившаяся ошибка).

В идеале я думаю о чем-то вроде

check file myapplog with path /var/myapp.log every 2 cycles
   if lines matching "ERR" > 10% then alert

Я думаю, что могу получить это, написав внешний скрипт, а затем сделав что-то вроде

check program cer with path /usr/local/bin/checkerrorrate.sh 
   if status != 0 then alert

но мне интересно, есть ли вариант получше.

Я не думаю Монит - лучший выбор для оценки частоты появления этих сообщений об ошибках. Ограничения процедур тестирования содержимого файла могут усложнить задачу без обращения к внешнему решению. Видеть: http://mmonit.com/monit/documentation/monit.html#file_content_testing

В частности:

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

  • При запуске позиция чтения устанавливается в конец файла, и Monit продолжает сканирование до конца файла в каждом цикле. Но если размер файла должен уменьшиться или измениться индексный дескриптор, позиция чтения устанавливается на начало файла.

  • Проверяются только строки, заканчивающиеся символом новой строки. Таким образом, строки игнорируются, пока они не будут заполнены этим символом. Также обратите внимание, что проверяются только первые 511 символов строки.

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