Мониторинг журналов apache с помощью tail –f
через некоторое время становится очень неприятным для глаз. Есть ли какие-нибудь инструменты / варианты для раскрашивания выходных журналов? Может сигнализировать FATAL красным и т.д ...
я использую многоцелевой для мониторинга журналов он включает в себя раскраску, а также мониторинг нескольких файлов журналов, объединенных или в окнах. Попробуйте.
Любая причина, по которой вы не можете использовать что-то вроде этого:
tail -f FILE | grep --color=always KEYWORD
источник: commandlinefu.com
Нашел это: 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
я использую небольшой скрипт с комбинациями 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 добавляет свой цвет. Результат примерно такой:
Бесстыдный плагин: я написал инструмент под названием TxtStyle это делает что-то похожее на варианты, упомянутые ранее. Вы можете запустить его следующим образом:
tail -f /var/log/syslog | txts --regex '\d+'
Вы также можете определить именованные стили в файле конфигурации (~/.txts.conf
) и используйте его так:
ifconfig | txts --name ifconfig
(ifconfig
стиль определяется из коробки)
Есть одна функция, которую я не видел в этих колоризаторах - время отклика подсветки (большее время -> более тревожный цвет). Здесь может пригодиться поддержка 256 цветов в современных эмуляторах терминала.
Еще один полезный трюк с grep для отображения всего вывода, но цвета выбранного KEYWORD:
tail -f FILE | grep --color=always -E "$|REGEXP"
Из всех ответов выше это то, что я получил, и он очень хорошо работает
#!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]*\].*"