ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

3 способа просмотра журналов в реальном времени в Linux

3 способа просмотра журналов в реальном времени в Linux

Вы умеете просматривать файлы в Linux. Для этой цели вы используете команду cat или, возможно, команду less.

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

Как вы видите содержимое файлов журналов в реальном времени? Tail – самая популярная команда для этой цели, но есть и другие инструменты.

 

Метод 1. Просмотрите файлы журнала с помощью команды tail

Команда tail настолько популярна для просмотра файлов журнала в реальной жизни, что системные администраторы используют термин «tail the log file (хвост файла журнала)».

Команда tail в основном используется для отображения строк файла с конца, отсюда и термин «tail».

Вы можете использовать опцию -f отслеживания хвоста файла, что означает, что он будет постоянно показывать новые строки, добавленные в файл.

tail -f location_of_log_file

 

Для того, чтобы остановить хвостохранилищ лог – файла, используйте Ctrl + C терминала ярлык.

 

Tail и grep

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

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

Чтобы упростить задачу, объедините команду tail и grep следующим образом:

tail -f log_file | grep search_term

 

Это хорошо, правда? Давайте сделаем это немного лучше.

Строки с искомыми словами не раскрывают необходимых деталей. Вот почему мы используем команду grep, чтобы показать несколько строк до и после искомого термина с опцией -C.

tail -f log_file | grep -C 3 search_term

 

Теперь вы увидите строки, соответствующие поисковому запросу, а также 3 строки до и после него. Это даст лучшее представление о том, что происходит.

Хотите сделать его еще лучше? Вы можете использовать grep для нескольких поисковых запросов и даже сделать поиск без учета регистра:

tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

 

Сохранение файла с ротацией журнала

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

Это создает проблему, если вы отслеживаете файл журнала в реальном времени. По умолчанию команда tail работает с файловым дескриптором. Если текущий файл журнала повернут, команда tail теперь будет указывать на заархивированный файл журнала, который не будет записывать никаких изменений.

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

tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

 

Сейчас это намного лучше. В следующий раз, когда вы будете отслеживать файл журнала, используйте его таким образом, чтобы отслеживать его более эффективно.

Tail удобен для мониторинга файла журнала в реальном времени, но что, если вам нужно анализировать более одного файла журнала одновременно? Ответ кроется в следующем разделе.

 

Просмотр нескольких файлов журнала с помощью хвоста

Это должно работать в системах Linux. Вы можете отслеживать несколько файлов журнала одновременно с помощью команды tail. Просто укажите путь к файлу следующим образом:

tail -f log_file_1 -f log_file_2

 

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

Есть немного лучший способ просматривать сразу несколько файлов журнала с помощью утилиты multitail.

 

Метод 2: одновременный мониторинг нескольких файлов журналов с помощью многопользовательской

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

Команда tail тоже может делать то же самое, верно?

Но у Multitail есть некоторое преимущество перед обычной командой tail. Он показывает файлы в разделенных представлениях, и вы даже можете отображать разные файлы в разных строках и столбцах.

Помните, что хвост показывает все в одном ракурсе, и за этим становится трудно следить. Multitail преодолевает эту трудность, предоставляя разделенный вид, как команда экрана.

Multitail не является такой важной командой, как tail, и вам, возможно, придется установить ее перед использованием.

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

multitail log_file_1 log_file_2

 

По умолчанию multitail  работает так же, как tail -f. Он показывает последние 100 строк, а затем переходит в режим реального времени. По умолчанию вид разбивается на строки.

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

Нажмите q, чтобы выйти из всех видов просмотра в многоадресном режиме.

Вы можете разделить представления на столбцы следующим образом:

multitail -s 2 log_file_1 log_file_2

 

Между -sи количеством столбцов есть обязательный пробел.

Multitail может выполнять и другие функции, но я не буду вдаваться в подробности в этом руководстве.

До сих пор вы видели два способа мониторинга файлов журналов. Есть еще один, менее традиционный способ увидеть изменения файлов в реальной жизни, и он использует команду less.

 

Метод 3: просмотр изменений файла журнала в реальном времени с меньшим количеством команд

Команда less больше подходит для чтения текстовых файлов, не загромождая экран. Его также можно использовать для чтения файлов с изменениями в реальном времени.

Эта опция +Fпозволяет меньше отслеживать изменения, внесенные в текстовый файл.

less +F log_file

 

Он открывает файлы журнала, в которые записываются изменения, отображаемые в реальном времени.

Нажмите Ctrl + c, чтобы прервать и q, чтобы выйти из представления.

Этот метод позволяет быстро просматривать изменения журнала, не загромождая экран, в отличие от команды tail.

 

Заключение

Этот метод мониторинга файлов журналов в Linux работает с традиционными текстовыми файлами журналов. Для системных журналов системные журналы все еще существуют, но многие дистрибутивы Linux перешли на журнальные журналы, и для просмотра и анализа журналов журнала вы должны использовать команды journalctl.

Помимо этого, есть и другие сложные инструменты, такие как Graylog, для более глубокого анализа журналов с помощью панелей мониторинга и графиков. Подробнее об этом в другой статье.

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

Exit mobile version