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

Кто-нибудь знает инструмент для обнаружения повторяющихся шаблонов в файле журнала и создания отчетов о них?

Мне нужно отслеживать несколько больших шумных файлов журнала (500 м / день) из приложения Java (log4j). Прямо сейчас я вручную просматриваю файлы, grep для "ERROR" и так далее. Однако инструмент должен иметь возможность обнаруживать повторяющиеся шаблоны в файле, подсчитывать их и обеспечивать детализацию отдельных записей. Кто-нибудь знает такой инструмент? Было бы неплохо использовать текстовый или веб-интерфейс.

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

Я слышал о людях, применяющих байесовскую фильтрацию к файлам журнала, чтобы отличить интересные вещи от обычных записей журнала. Они использовали спам-фильтры, где обычные неинтересные записи считались «хорошими», а необычные - «спамом», и с помощью этой окраски они могли переключаться.

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

syslog-ng имеет именованную функцию patterndb. Вы можете создавать шаблоны и сопоставлять с ними записи журнала в реальном времени, а затем отправлять эти записи в отдельные файлы журнала.

Изучая syslog-ng и patterndb (+1 к этому ответу выше), я обнаружил веб-инструмент под названием ELSA: http://code.google.com/p/enterprise-log-search-and-archive/. Это F / OSS на perl, с веб-интерфейсом, и он должен быть очень быстрым.

Я еще не пробовал, но как только я закончу фильтрацию с помощью patterndb, я попробую ELSA.

Проверять petit.
Я не уверен, будет ли он работать с форматом log4j, но вы можете написать для этого собственный фильтр.
У Petit нет веб-интерфейса, он отображает графики в вашей оболочке (ASCII art ftw!).
Очень полезно быстро увидеть повторяющиеся сообщения и выяснить, когда они произошли или начали появляться чаще.

Если вы используете debian / squeeze на своем сервере, взгляните на log2mail: http://packages.debian.org/squeeze/log2mail

Glogg - очень хороший обозреватель журналов, так как у вас есть возможность создать базу фильтров на основе строки и цветной строки или получить все вхождения в строку.

http://glogg.bonnefon.org/

Splunk обычно является хорошим решением для этого. Но вы упомянули, что это слишком дорого для вас. Так что рекомендую посмотреть Logstash или GrayLog.

Вы можете попробовать программу SEQREL LogXtender, которая автоматически обнаруживает шаблоны и объединяет похожие журналы. Это достигается путем создания регулярных выражений на лету и использования кэшированного регулярного выражения для сопоставления с другими журналами. С дополнительным обнаружением таксономии можно добавить большую детализацию. Бесплатную версию можно скачать по ссылке https://try.logxtender.net.