Использование команды journalctl и примеры на Linux
Команда journalctl может быть использована для просмотра всех журналов, собранных systemd в системе Linux. Сюда входят логи, относящиеся к ядру системы, initrd, различным службам и приложениям, а также к самой systemd. Команда journalctl делает запрос ко всем этим журналам довольно безболезненным, поскольку systemd собирает и хранит все эти различные журналы в центральном месте для просмотра администраторами.
В этом руководстве вы узнаете, как использовать команду journalctl в Linux. Это будет включать в себя часто используемые опции, а также информацию о том, как интерпретировать системные логи, поскольку они могут быть довольно загадочными для непосвященных. Ознакомьтесь с некоторыми из приведенных ниже примеров, чтобы понять команду, и опробуйте некоторые варианты команд на своей системе.
В этом уроке вы узнаете:
- Как использовать команду journalctl в Linux
- Как просмотреть зарегистрированные ошибки с помощью journalctl
- Как просмотреть предыдущие журналы загрузки
- Часто используемые опции для команды journalctl
Часто используемые опции
journalctl в Linux Основные примеры
Самый простой способ использования
journalctl— без дополнительных опций. Это покажет вам все, что было зарегистрировано, что, безусловно, будет огромным объемом данных, если ваша система была включена в течение какого-либо периода времени. Нередки случаи, когда записи в журнале исчисляются миллионами.journalctlПосмотрите на скриншот ниже, чтобы увидеть общий формат журналов. Вывод будет автоматически передаваться на
меньшийуровень. Используйте клавишуEnterдля прокрутки строка за строкой илипробелдля прокрутки страницы за страницей. Чтобы выйти из вывода журнала, нажмитеqна клавиатуре.Журналы хранятся отдельно для каждой загрузки, что позволяет легко изолировать определенные журналы, если вы пытаетесь точно определить ошибку, возникшую перед недавней перезагрузкой. Используйте опцию
--list-bootsдля просмотра списка всех журналов предыдущих загрузок.journalctl --list-bootsНа скриншоте ниже показано, что
journalctlможет получить доступ к журналам за последние 15 загрузок нашей системы. Наша текущая загрузка обозначена цифрой 0, а предыдущая загрузка — цифрой 1.Для просмотра логов предыдущей загрузки системы мы можем использовать опцию
-b(boot) и число-1. Укажите другое число, если вы хотите просмотреть журналы для еще более старой загрузки.journalctl -b -1Вы также можете использовать идентификатор загрузки для просмотра журналов предыдущей загрузки. Эта буквенно-цифровая строка не изменится, в отличие от последовательных чисел, которые продолжают увеличиваться после каждой загрузки.
journalctl -b d1389cc42a75447dba69c0b7f74cc0e9Опции
--sinceи--untilможно использовать для изоляции соответствующих журналов, которые были зарегистрированы в течение определенного периода времени. Например, чтобы просмотреть все журналы со вчерашнего дня:journalctl --since yesterdayВы также можете использовать варианты в сочетании друг с другом.
journalctl --since yesterday --until "2 hours ago"Используйте формат
даты YYYY-MM-DD HH:MM:SSс этими двумя параметрами, если вы хотите изолировать записи журнала для определенного периода времени.journalctl --since 2022-10-03 01:00:00 --until 2022-10-04 14:30:00Это может быть полезно, если вы точно знаете, что ошибка или соответствующее событие произошли где-то в это время, и вам нужно точно определить, когда именно это произошло, или посмотреть, какие данные были зарегистрированы, когда это произошло.
-
Чтобы просмотреть записи, которые были зарегистрированы для определенной системной службы, используйте флаг
-u. Например, чтобы увидеть все записи, зарегистрированные Apache:journalctl -u apache2.service Чтобы увидеть некоторые из самых последних записей, мы можем использовать опцию
-n. По умолчанию будут показаны последние 10 записей журнала.journalctl -nЧтобы увидеть последние 100 записей, используйте флаг
-nеще раз, но укажите номер после него.journalctl -n 100Вы также можете передавать вывод в команду
tail. Чтобы просмотреть последние 100 записейjournalctl:journalctl | tail -100
ПРИМЕЧАНИЕ
Вы всегда можете использовать команду man, чтобы узнать больше о команде journalctl и ее официальной документации. Нажмите на предыдущую ссылку, чтобы узнать, как открыть справочные страницы для любой команды в системе Linux.
Расширенное использование
Команда journalctl довольно проста, но, как вы уже заметили в разделе примеров этой статьи, она поставляется с множеством опций. Многие из этих опций остаются незамеченными, и даже некоторые опытные системные администраторы могут их не знать. Тем не менее, они точно могут пригодиться в различных ситуациях. В этом разделе урока мы покажем вам несколько менее известных опций команды journalctl, которые мы считаем полезными.
journalctl в расширенных примерах Linux
Чтобы видеть только сообщения, относящиеся к ядру, используйте опцию
-k.journalctl -kПоскольку записей журнала очень много, может быть полезно видеть только те из них, которые имеют определенный приоритет. Наивысший приоритет — уровень 0, а самый низкий — уровень 7. Уровни лога следующие:
0: emergency 1: alert 2: critical 3: error 4: warning 5: notice 6: info 7: debugИспользуйте опцию
-pдля просмотра логов определенного уровня, а также тех, которые выше него по приоритету. В этом примере мы будем использовать уровень 3, который представляет собой любую запись, помеченную как ошибка, критическая, предупреждение или чрезвычайная ситуация.journalctl -p 3Чтобы получить вывод в формате JSON, который может облегчить разбор в определенных программах, используйте опцию
-oследующим образом:journalctl -o jsonИЛИ
journalctl -o json-prettyЧтобы просмотреть все журналы по мере их создания, используйте опцию
-f. Это работает точно так же, как опция-fдля командыtail.journalctl -fЧтобы узнать, сколько места на диске занимают все ваши файлы журнала:
journalctl --disk-usage
Заключение
В этом уроке мы узнали все о команде journalctl в Linux. Команда journalctl необходима для пользователей и администраторов, которым необходимо устранять системные ошибки или отслеживать аномалии в журналах. Для дальнейшего чтения ознакомьтесь с другим нашим уроком по Введение в журнал Systemd.


