Я хочу получить количество уникальных записей в журналах ошибок Apache на

2338
nelaaro

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

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

Я знаю о Perl / Python / и т. Д., Но я бы предпочел использовать встроенные инструменты, такие как cut/ find/ grep/ sedи т. Д.

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

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u Apache configured -- resuming normal operations client denied by server configuration Digest File does not exist request failed 

Это работает для подсчета количества вхождений. Это просто не так полезно, так как не показывает, к чему относится число:

$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u | xargs -I{} grep -oc {} error.sml.log 1 3886 2 6091 20 

Я хотел бы, чтобы вывод выглядел больше так:

1 Apache configured -- resuming normal operations 3886 client denied by server configuration 2 Digest 6091 File does not exist 20 request failed 
1

1 ответ на вопрос

2
nelaaro
sed -e "s / \ [. * \] \ ([^:] * \) \ (. * \) / \ 1 /" error.sml.log | сортировать | uniq -c 1 Apache настроен - возобновление нормальной работы Клиент 3886 отклонен конфигурацией сервера 2 Дайджест 6091 Файл не существует 20 запрос не выполнен 

Существует инструмент, который делает именно этот уникальный. Хотел бы я найти это пару часов назад.

Есть несколько полезных опций, таких как uniq -d только показывать строки с более чем 1 записью

$ sed -e "s / \ [. * \] \ ([^:] * \) \ (. * \) / \ 1 /" error.sml.log | сортировать | uniq -cd Клиент 3886 отклонен конфигурацией сервера 2 Дайджест 6091 Файл не существует 20 запрос не выполнен 

uniq -u показывать только строки uniq только 1 запись

$ sed -e "s / \ [. * \] \ ([^:] * \) \ (. * \) / \ 1 /" error.sml.log | сортировать | uniq -u  Apache настроен - возобновление нормальной работы 

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

Если бы я был на, я мог бы сказать вам. Это происходит много, несколько поисков должны были его найти (вот как я узнал об этом, я хотел знать, сколько раз conky выдавал ошибку в мой файл .xsession-errors, это было более 182 000 раз!) Rob 12 лет назад 1

Похожие вопросы