Загрузка...

Ускорение поиска ошибок в логах с помощью awk и цветного вывода

Тема в разделе Статьи создана пользователем APT29388 12 ноя 2024. (поднята 13 ноя 2024) 305 просмотров

  1. APT29388
    APT29388 Автор темы 12 ноя 2024 ГУРУ ИНВАЙТА - lolz.live/threads/8567181 :admin:
    При анализе ***** на серверах или в контейнерах часто требуется быстро найти нужную информацию, особенно в случаях, когда **** «завалены» повторяющимися сообщениями. Обычно для этого используют такие команды, как grep, но можно пойти дальше и сделать поиск более удобным, добавив цветное выделение и сортировку по ключевым словам.

    1. Цветное выделение важных строк в логах с awk
    Представим, что у вас есть файл ***** app.log, в котором вы хотите выделить все строки, содержащие слово "error" красным, "warning" — жёлтым, а "info" — зелёным. Для этого используйте команду:
    Код
    awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    ' app.log


    В этом примере:
    \033[31m — это ANSI-код для красного цвета;
    \033[33m — для жёлтого;
    \033[32m — для зелёного;
    \033[39m — сброс цвета до стандартного.

    2. Вывести только строки с ключевыми словами
    Если вы хотите игнорировать всё остальное, можно немного модифицировать команду:
    Код
    awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    ' app.log | grep -E "error|warning|info"


    3. Если необходимо искать ключевые слова в режиме реального времени
    Например, из потока вывода docker ****, можно комбинировать с tail -f:
    Код
    tail -f app.log | awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    '



    4. В завершение, можно создать скрипт для регулярного использования:
    Код
    #!/bin/bash
    tail -f $1 | awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    '



    Сохраните его как log_color.sh, сделайте исполняемым (chmod +x log_color.sh), и теперь можно запускать команду так:
    Код
    ./log_color.sh app.log


    Этот подход значительно ускорит анализ *****, делая визуально очевидными ошибки, предупреждения и информацию. Цветной вывод помогает быстро заметить проблемы, даже в больших объёмах *****.
     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
  2. onlycash_pay
    onlycash_pay 12 ноя 2024 ФЕРЗЬ FORUM'A 3716 31 авг 2020
    Спасибо
     
  3. krutyshkin
    krutyshkin 12 ноя 2024 148 1166 6 фев 2019
    авторку
     
    1. APT29388 Автор темы
      12 ноя 2024 Изменено
Top
Загрузка...