Скрипт для просмотра лог файлов - PullRequest
1 голос
/ 05 декабря 2011

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

Однострочник

cat /var/log/apache2/error.log | sed 's/.*] \(.*\)/\1/' | sed 's/[0-9]*//g' | sort | uniq

Объяснение

| sed 's/.*] \(.*\)/\1/': удаляет все, что содержится внутри и перед последней скобкойгруппа, которая обычно соответствует специфичной для клиента / системы информации, такой как [Mon Dec 05 12:01:03 2011] [error] [client a.b.c.d]

| sed 's/[0-9]*//g': удаляет числа

| sort | uniq: сохраняются только строки, отличающиеся.

Чтобы дать вам представление, на /var/log/apache2/error.log, который содержит около 500 строк, это отфильтровывает до 25 строк.Конечно, чем больше общих / похожих записей в журнале, тем эффективнее однострочный.

Сейчас я ищу скрипт (может быть bash, perl, pythonили что-нибудь еще на самом деле), который мог бы сделать то же самое, но немного более продвинутый, чтобы быть еще более эффективным (например, обфусцировать пути к файлам, алфавитные идентификаторы ...) и полезным (подсчитать, сколько вхождений каждого сообщения,% по сравнению собщее количество логов ...).

Знаете ли вы сценарии, которые делают это?

1 Ответ

4 голосов
/ 05 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...