Цветной хвост бревен Apache

Мониторинг журналов Apache с tail –f тенденцию становится очень расстраивающим для глаз через некоторое время. Существуют ли какие-либо инструменты / опции для раскрашивания выходов журнала? Может быть, сигнал FATAL с красным, и т.д...

9 ответов

Решение

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

Любая причина, почему вы не можете использовать что-то вроде этого:

tail -f FILE | grep --color=always KEYWORD

Источник: commandlinefu.com

Я использую небольшой скрипт с комбинациями grep для получения некоторых цветов:

#!/bin/bash
shopt -s expand_aliases

alias grey-grep="GREP_COLOR='1;30' grep -E --color=always --line-buffered"
alias red-grep="GREP_COLOR='1;31' grep -E --color=always --line-buffered"
alias green-grep="GREP_COLOR='1;32' grep -E --color=always --line-buffered"
alias yellow-grep="GREP_COLOR='1;33' grep -E --color=always --line-buffered"
alias cyan-grep="GREP_COLOR='1;36' grep -E --color=always --line-buffered"

tail -1000f /var/log/apache2/error.log | grey-grep ".*PerformanceLogger.*|$" | cyan-grep "INFO|$" | yellow-grep "WARN|$" | red-grep "[ERROR].*|[FATAL].*|$" | green-grep "***|$"

Дело в том, что каждый цепочечный grep добавляет свой цвет. Так что результат примерно такой:Логи Apache с некоторыми цветами

Нашел это: http://fixunix.com/unix/83044-tail-color.html

tail -f file | perl -pe 's/keyword/\e[1;31;43m$&\e[0m/g'

Это работает только на терминалах ANSI, но все остальные практически исчезли. \e[...m ist escape-последовательность ANSI SGR "выбрать графическое представление". "..." может быть заменено некоторыми целыми числами, разделенными точкой с запятой, со значением:

0: все атрибуты выключены 1: полужирный 31: красный цвет переднего плана 43: желтый цвет фона

"Ключевое слово", конечно, может быть любым регулярным выражением perl:

(foo | bar) выделите строки foo и bar \b((foo|bar)\b выделите слова foo и bar.\ b ((foo | bar) \ b. выделите всю строку, содержащую слова foo или bar

Или, простой способ, просто установите colortail Вероятно, в вашем любимом репо (dag для CentOS)

http://developwithstyle.com/articles/2010/04/20/tail-your-logs-with-a-touch-of-color.html

http://joakimandersson.se/projects/colortail/

Из всех ответов выше это то, что я получил, и он очень хорошо работает

#!zsh
GR="grep --color=always --line-buffered -E"

alias grey="GREP_COLOR='1;30' $GR"
alias red="GREP_COLOR='1;31' $GR"
alias green="GREP_COLOR='1;32' $GR"
alias yellow="GREP_COLOR='1;33' $GR"
alias cyan="GREP_COLOR='1;36' $GR"

# show static files gray, 200 status green, 300 grey, etc
# [503] 06/24/20 19:40:34 (239) proxy:https://feedpress.me/drudgereportfeed?format=xml | cache miss: attempting entity save | 2460b
# [200] 06/24/20 19:40:34 (394) proxy:https://www.reddit.com/r/news/.rss | cache miss: attempting entity save | 25883b#
tail -300f /var/log/apache2/access.log | grey "$|[a-z0-9/]+(css|js|ico|png).*" | green "$|\[2[0-9]*\]" | yellow "$|\[3[0-9]*\]" | cyan "$|\[4[0-9]*\]" | red "$|\[5[0-9]*\].*"

Снимок экрана терминала

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

https://github.com/furriephillips/hl

Пожалуйста, будьте осторожны - это было творение сумасшедшего, которого спамили в Kingdom Come.

Это должно работать нормально в любом журнале, который вы отслеживаете, так как вы можете настроить биты, которые будут выделены и каким цветом, и постепенно продвигаться к полностью персонализированному опыту, возможно, с псевдонимами команд для каждого журнала, например, случайным и не очень полезный пример: -

alias hlmaillog="tail -F /var/log/maillog | hl NOQUEUE голубой | hl 'заблокировано с использованием zen' розовый | hl предупреждение желтый | hl 'Имя или служба неизвестны' розовый | hl 'Соединение TLS установлено' желтый | hl TIMING светло-голубой | hl dkim красный"

Еще один полезный трюк с grep, чтобы показать все выходные данные, но раскрасить выбранный KEYWORD:

tail -f FILE | grep --color=always -E "$|REGEXP"

Есть одна особенность, которую я не видел в этих колоризаторах - выделение времени отклика (большее время -> более тревожный цвет). Поддержка 256 цветов в современных терминальных эмуляторах может быть полезна здесь.

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

tail -f /var/log/syslog | txts --regex '\d+'

Вы также можете определить именованные стили в файле конфигурации (~/.txts.conf) и использовать его так:

ifconfig | txts --name ifconfig

(ifconfig стиль определяется из коробки)

Другие вопросы по тегам