У меня есть различные разнородные сервисы моей компании, которые могут записывать вещи в файлы, но, например, не может отправлять письма самостоятельно. Кроме того, у меня есть вход в файлы из Apache httpd и Tomcat, Postgres, Upstart и различных других источников по умолчанию, не использующих, например, Системный журнал. Все эти службы обычно используют файлы, но размер журнала, форматы сообщений, ротация и т. Д. Различаются.
Итак, я ищу какой-нибудь монитор журнала, который фокусируется на настроенных файлах и предоставляет триггеры для сопоставления вновь добавленного содержимого этих файлов с некоторыми регулярными выражениями или подобными для отправки писем с сообщениями об ошибках.
Я хотел бы иметь что-то отдельное, ориентированное на мониторинг файлов журнала с помощью триггеров и несколько эффективное, например, использование событий файловой системы для получения уведомлений об измененных файлах, чтение только конца файлов при изменениях вместо анализа всего файла и т. д. Тем не менее, мне нужна некоторая гибкость в определении триггеров, но кроме того, ему нужно только отправлять письма с сообщениями журнала на некоторые произвольные адреса. Даже самой по себе поддержки локального sendmail абсолютно достаточно, с очень небольшим количеством функций шаблонов для этих писем. Мне даже наплевать на такие вещи, как распознавание нескольких сообщений об ошибках и тому подобное.
Я целый день читал об этой теме и нашел различные решения, такие как Graylog, Logstash, плагины для Nagios / Zabbix и т. Д. Но из того, что я читал, все они имеют серьезные недостатки для моей среды: Graylog и Logstash похоже, у них тяжелая настройка и зависимости, и они предоставляют функции, которые мне просто не нужны, например поиск в журналах. В настоящее время я также не использую Nagios и Zabbix, и я не уверен, как работают их плагины для мониторинга журналов, потому что они, похоже, опрашивают файлы журналов по времени и тому подобное. Дополнительно, Конфигурация Zabbix выглядит немного сложно в обслуживании.
Так есть ли что-то более сфокусированное?
Монит звучит многообещающе, согласно подсказке @ shodanshok на другие вопросы:
check file syslog with path /var/log/syslog
ignore content = "monit"
if content = "^mrcoffee" then alert
SwatchDog кажется интересным, но старым и не обслуживаемым, с серьезными открытыми ошибками.
лесоруб кажется интересным, но Python - не мой любимый выбор, и, похоже, он сосредоточен на предоставлении специального вывода вместо триггерных действий. Должно быть серьезные ошибки также.
Я настоятельно рекомендую вам изучить и реализовать полноценное решение для мониторинга, такое как Zabbix: хотя мониторинг файлов журналов вам нужен только сегодня, вам может понадобиться что-то более комплексное завтра.
Если вы действительно хотите отслеживать только некоторые файлы журналов, взгляните на ответы, которые вы можете найти Вот и Вот.