Linux tail with grep

3 Ways to Watch Logs in Real Time in Linux

Here’s how to use tail command effectively for watching log files in real time. Less and Mutitail commands also come in handy.

You know how to view files in Linux. You use cat command or probably less command for this purpose.

That’s good for files that has static content. But log files are dynamic and their content change with time. To monitor logs, you need to watch the log file as its content changes.

How do you see the content of log files in real time? Tail is the most popular command for this purpose but there are some other tools as well. I’ll show them to you in this tutorial.

Method 1: Watch log files with the tail command

The tail command is so popular for viewing log files in real life that sysadmins use the term ‘tail the log file’.

The tail command is essentially used for showing the lines of a file from the end and hence the term ‘tail’.

You can use the -f option to follow the tail of a file, which means that it will keep on showing the new lines added to the file continuously.

tail -f location_of_log_file

tailing a log file

To stop the tailing of the log file, use Ctrl+C terminal shortcut.

Tail and grep

Alright! So the tail command solves a problem by showing the file changes in real life. But watching the log file continuously when there are so many rapid changes happening in real time is not very helpful.

You’ll often be looking for a particular term when monitoring the log file. Finding that in the flood of incoming new lines is close to impossible.

To make things easier, combine the tail and grep command like this:

tail -f log_file | grep search_term

grpe on tail log

This is good, right? Let’s make it a bit better.

I have often found that just the lines with searched terms don’t reveal the necessary details. This is why I use grep command to show a few lines before and after the searched term with option -C .

tail -f log_file | grep -C 3 search_term

Now, you’ll see the lines matching the search term along with 3 lines before and after it. This will give a better perspective on what’s happening.

Want to make it even better? You can grep on multiple search term and even make it a case insensitive search:

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

Tailing the file with log rotation

If you are working on an enterprise server, chances are that logs are rotated. This means that after the current log file reaches a certain size, it is renamed and zipped.

Читайте также:  Linux mint нет русского языка

Log files are rotated and archived

That creates a problem if you are tailing a log file in real time. By default, the tail command works on the file descriptor. If the current log file is rotated, tail command will now be pointing to an archived log file which will not be recording any change now.

The solution is to follow a log file by its name. This way, even when log rotation takes place, the tail will be pointing to the current log file (because its name never changes).

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

This is a lot better now. The next time you tail a log file, use it this way to monitor it more effectively.

Tail is nice for monitoring a log file in real time but what if you have to analyze more than one log files at the same time? The answer lies in the next section.

Watching multiple log files with tail

This should work in Linux systems. You can monitor multiple log files at the same time with the tail command. Just provide the path of the file in this manner:

tail -f log_file_1 -f log_file_2

You’ll see that it starts showing the real time changes along with the file name before it so that you can distinguish between different log sources.

Viewing multiple log files in real time with tail

There is a slightly better way to view multiple log files at once using a utility called multitail.

Method 2: Monitor multiple log files at once with multitail

Multitail, as the name suggests, is used to display multiple files at once.

What’s the big deal? The tail command can also do the same, right?

But Multitail has some advantage over the conventional tail command. It shows the files in split views and you can even show different files in different rows and columns.

Remember, tail shows everything in the same view and that becomes difficult to follow. Multitail overcomes this difficulty by providing split view like the screen command.

You can provide several files to it but I think more than 3 files would be difficult to follow at a time.

multitail log_file_1 log_file_2

By default, multitail works the same as tail -f . It shows the last 100 lines and then goes in the real time view. By default, it splits the view in rows.

Viewing multiple log files with multitail

You can press b to open a selector window and select log file of your choice to view it and scroll through it for further and deeper analysis.

Press q to exit from all kind of views in multitail.

You can split the views in columns like this:

multitail -s 2 log_file_1 log_file_2

There is a mandatory space between -s and the number of columns.

Vertical split view with Multitail

Multitail is capable of doing some other things but I won’t go into those details in this tutorial.

So far, you have seen two ways of monitoring log files. There is another but less conventional way of seeing file changes in real life and that is using the less command

Method 3: View log file changes in real time with less command

The less command is more for reading text files without cluttering the screen. It can also be used for reading files with real time changes.

The option +F allows less to follow the changes made to a text file.

It opens the log files with changes being written to it displayed in real time.

Читайте также:  Dual monitor and linux

View log files in real time with the less command

Press Ctrl+c to interrupt and q to exit the view.

This method allows you to have a quick view of log changes without cluttering the screen, unlike the tail command.

Conclusion

This method of monitoring log files in Linux works for the traditional text based log files. For the system logs, syslogs are still there but many Linux distributions have switched to journal logs and to view and analyze the journal logs, you have to use journalctl commands.

Apart from that, there are other sophisticated tools like Graylog for log analysis on a deeper level with dashboards and graphs. More on that in some other article.

I hope you learned a couple of new things from this seemingly easy topic on real time log monitoring in Linux. Your feedback is welcome.

Источник

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

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

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'

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

Читайте также:  Kali linux информационная безопасность

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позволяет меньше отслеживать изменения, внесенные в текстовый файл.

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

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

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

Заключение

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector