LINUX.ORG.RU

Утилита анализа логов сервера Apache Tomcat.


0

1

Утилита написана на питоне (которого я не знаю, так что анекдоты в коде вполне возможны).

Задача утилитиы найти в лог-файле apache-tomcat все записи с уровнем SEVERE (как правило стектрейсы исключений / ошибок), подсчитать кол-во одинаковых и вывести отчетец где будет количество повторений записи, даты когда она возникала, и собственно ее текст. Т.к. утилитами типа grep задача не решилась, а изучать awk лень, ибо уж если писать программы то зачем это делать так затейливо на awk? НМВ тут уж улче использовать perl или python, тем более что последний мне чуть лучше знаком нежели первый.

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

В скрипте есть справка:

usage: log-analyzer.py [-h] [-t TIME_PATTERN] [-o OUT_FILE] log [log ...]
Java log analyzer
positional arguments:
  log              log files for analyzing
optional arguments:
  -h, --help       show this help message and exit
  -t TIME_PATTERN  time regular expression patten (for example like "([\d.]+ [\d:]+)|([\w]+ \d+, \d{4} [\d:]+ [A|P]M)" )
  -o OUT_FILE      analyze report file (XML)

Да, замечу что такой затейливый паттерн для времени записи ("([\d.]+ [\d:]+)|([\w]+ \d+, \d{4} [\d:]+ [A|P]M)") используется по умолчанию для лога сервера который коряво запускается то с LANG=C (при загрузке сервера), то с LANG=ru_RU.utf-8 (от пользователя), кстати юникод в логах поддерживается, а вот cp1251 - нет.

Скрипт работает по принципу: находим строку начинающуюся с SEVERE, предыдущую строку используем как дату, а все следующие до строки начинающейся с даты — как текст ошибки. Нетрудно догадаться, что таким образом можно янализировать не только логи томката, но и любого другого приложения, в том числе и не на java.

Код скрипта http://pastebin.com/6xMG8p0s, не заводить же аккаунт на гитхабе ради этого?

Да, в интернете утилит с таким функционалом не находил, либо анализ веб-логов на предмет запросов и подсчета траффика, либо тупые смотрелки.

ps. продублировал в жж

Deleted

Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

да, что-то я забыл что тут можно только вопросы задавать 8)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.