Добавить в корзинуПозвонить
Найти в Дзене
Easy Linux - о Linux просто

Как читать логи или системные журналы в Linux. Использование journalctl.

Приветствую, авантюрист. Одна из важнейших вещей при работе с любой операционной системой — это мониторинг и логирование. В Windows есть журнал событий, работа с которым ужасно громоздкая, медленная и малоинформативная. В macOS тоже наверняка что-то есть. Думаю, даже сами владельцы macOS понятия не имеют, есть ли там журнал и как им пользоваться. Конечно же, Linux не исключение. В ней есть journalctl Синтаксис команды journalctl journalctl опции Параметров довольно много, но знать их все нет никакой необходимости. Весь список можно увидеть, введя journalctl --help. Остановимся на более используемых параметрах. --pager-end, -e — отобразить только последние сообщения из журнала, по умолчанию ты увидишь первые сообщения, что редко бывает нужно. --boot, -b — показать сообщения с момента определенной загрузки системы. По умолчанию используется последняя загрузка. Очень удобная опция. Благодаря ей можно отфильтровать именно лог конкретного сеанса работы системы. Чтобы увидеть весь список заг

Приветствую, авантюрист. Одна из важнейших вещей при работе с любой операционной системой — это мониторинг и логирование. В Windows есть журнал событий, работа с которым ужасно громоздкая, медленная и малоинформативная. В macOS тоже наверняка что-то есть. Думаю, даже сами владельцы macOS понятия не имеют, есть ли там журнал и как им пользоваться. Конечно же, Linux не исключение. В ней есть journalctl

Синтаксис команды journalctl

journalctl опции

Параметров довольно много, но знать их все нет никакой необходимости. Весь список можно увидеть, введя journalctl --help.

Остановимся на более используемых параметрах.

--pager-end, -e — отобразить только последние сообщения из журнала, по умолчанию ты увидишь первые сообщения, что редко бывает нужно.

--boot, -b — показать сообщения с момента определенной загрузки системы. По умолчанию используется последняя загрузка. Очень удобная опция. Благодаря ей можно отфильтровать именно лог конкретного сеанса работы системы. Чтобы увидеть весь список загрузок, нужно выполнить --list-boots. Далее ввести нужный номер загрузки и увидеть лог именно выбранной сессии.

--dmesg, -k — показывает сообщения только от ядра. Аналог вызова команды dmesg. Так можно отфильтровать сообщения драйверов и различных модулей.

--unit, -u — показать сообщения от выбранного сервиса.

--priority, -p — фильтровать сообщения по их приоритету. Есть восемь уровней приоритета, от 0 до 7. Сомнительный параметр, но почему бы и нет. Кому-то он может помочь.

--grep, -g — фильтрация по тексту сообщения. Также сомнительный параметр. Зачастую, когда ты будешь смотреть логи, ты не будешь знать, что конкретно ищешь.

--since, -S, --until, -U — фильтрация по дате и времени;

-f — выводить новые сообщения в реальном времени, как в команде tail. Очень удобная штука. Запускаем журнал в режиме -f, затем проблемный сервис или программу и смотрим логи в прямом эфире.

--disk-usage — узнать занимаемое свободное место.

--vacuum-size — задать ограничение для хранения лога.

--vacuum-time — задать ограничения в длительности сообщений лога.

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

Горячие клавиши журнала

По умолчанию журнал открывается в режиме пролистывания. Ты будешь видеть часть журнала, и чтобы продвинуться дальше или вперед, его нужно листать.

Стрелка вниз, Enter, e или j — переместиться вниз на одну строку;

Стрелка вверх, y или k — переместиться на одну строку вверх;

Пробел — переместиться на одну страницу вниз;

b — переместиться на одну страницу вверх;

Стрелка вправо, стрелка влево — горизонтальная прокрутка;

g — перейти на первую строку;

G — перейти на последнюю строку;

p — перейти на позицию нужного процента сообщений. Например, 50p перенесет курсор на середину вывода;

/ — поиск по журналу;

n — найти следующее вхождение;

N — предыдущее вхождение;

q — выйти.

Опять же, всё это использовать никто не заставляет. Я листаю стерлками и не парюсь.

Часто используемые сценарии.

journalctl -xe

Показать последние события с развернутой информацией

journalctl -eu smb.service

Получить логи от конкретной службы

journalctl -f

Смотреть логи в режиме реального времени

journalctl -b

Посмотреть логи с момента последнего включения

journalctl --since "2019-01-20 15:10:10"

Фильтрация по дате.

Итог

Умение чтения логов на голову повышает тебя как специалиста и как пользователя тем более. В Linux работа организована гибко и понятно. Доступ к журналу быстрый. Информации много.

На мой взгляд, работать с журналом Linux удобнее, чем с Windows. Например, при перегреве в Windows ты увидишь только сообщение о критическом завершении системы. И непонятно, что именно произошло. По крайней мере, так было до Windows 11. Возможно, в 11-й версии что-то изменилось.

А вот Linux пишет сообщение о перегреве на понятном английском языке и корректно завершает работу, если это возможно.

Так что в любой непонятной ситуации лезть в журнал. Там есть всё, что нужно. Удачи, авантюрист.