Поиск по сайту:

Использование команды journalctl и примеры на Linux


Команда journalctl может быть использована для просмотра всех журналов, собранных systemd в системе Linux. Сюда входят логи, относящиеся к ядру системы, initrd, различным службам и приложениям, а также к самой systemd. Команда journalctl делает запрос ко всем этим журналам довольно безболезненным, поскольку systemd собирает и хранит все эти различные журналы в центральном месте для просмотра администраторами.

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

В этом уроке вы узнаете:

  • Как использовать команду journalctl в Linux
  • Как просмотреть зарегистрированные ошибки с помощью journalctl
  • Как просмотреть предыдущие журналы загрузки
  • Часто используемые опции для команды journalctl

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

journalctl в Linux Основные примеры

  1. Самый простой способ использования journalctl — без дополнительных опций. Это покажет вам все, что было зарегистрировано, что, безусловно, будет огромным объемом данных, если ваша система была включена в течение какого-либо периода времени. Нередки случаи, когда записи в журнале исчисляются миллионами.

    
    journalctl
    

    Посмотрите на скриншот ниже, чтобы увидеть общий формат журналов. Вывод будет автоматически передаваться на меньший уровень. Используйте клавишу Enter для прокрутки строка за строкой или пробел для прокрутки страницы за страницей. Чтобы выйти из вывода журнала, нажмите q на клавиатуре.

  2. Журналы хранятся отдельно для каждой загрузки, что позволяет легко изолировать определенные журналы, если вы пытаетесь точно определить ошибку, возникшую перед недавней перезагрузкой. Используйте опцию --list-boots для просмотра списка всех журналов предыдущих загрузок.

    
    journalctl --list-boots
    

    На скриншоте ниже показано, что journalctl может получить доступ к журналам за последние 15 загрузок нашей системы. Наша текущая загрузка обозначена цифрой 0, а предыдущая загрузка — цифрой 1.

  3. Для просмотра логов предыдущей загрузки системы мы можем использовать опцию -b (boot) и число -1. Укажите другое число, если вы хотите просмотреть журналы для еще более старой загрузки.

    
    journalctl -b -1
    
  4. Вы также можете использовать идентификатор загрузки для просмотра журналов предыдущей загрузки. Эта буквенно-цифровая строка не изменится, в отличие от последовательных чисел, которые продолжают увеличиваться после каждой загрузки.

    
    journalctl -b d1389cc42a75447dba69c0b7f74cc0e9
    
  5. Опции --since и --until можно использовать для изоляции соответствующих журналов, которые были зарегистрированы в течение определенного периода времени. Например, чтобы просмотреть все журналы со вчерашнего дня:

    
    journalctl --since yesterday
    
  6. Вы также можете использовать варианты в сочетании друг с другом.

    
    journalctl --since yesterday --until "2 hours ago"
    
  7. Используйте формат даты YYYY-MM-DD HH:MM:SS с этими двумя параметрами, если вы хотите изолировать записи журнала для определенного периода времени.

    
    journalctl --since 2022-10-03 01:00:00 --until 2022-10-04 14:30:00
    

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

  8. Чтобы просмотреть записи, которые были зарегистрированы для определенной системной службы, используйте флаг -u. Например, чтобы увидеть все записи, зарегистрированные Apache:

    
    journalctl -u apache2.service
    
  9. Чтобы увидеть некоторые из самых последних записей, мы можем использовать опцию -n. По умолчанию будут показаны последние 10 записей журнала.

    
    journalctl -n
    
  10. Чтобы увидеть последние 100 записей, используйте флаг -n еще раз, но укажите номер после него.

    
    journalctl -n 100
    

    Вы также можете передавать вывод в команду tail. Чтобы просмотреть последние 100 записей journalctl:

    
    journalctl | tail -100
    

ПРИМЕЧАНИЕ
Вы всегда можете использовать команду man, чтобы узнать больше о команде journalctl и ее официальной документации. Нажмите на предыдущую ссылку, чтобы узнать, как открыть справочные страницы для любой команды в системе Linux.

Расширенное использование

Команда journalctl довольно проста, но, как вы уже заметили в разделе примеров этой статьи, она поставляется с множеством опций. Многие из этих опций остаются незамеченными, и даже некоторые опытные системные администраторы могут их не знать. Тем не менее, они точно могут пригодиться в различных ситуациях. В этом разделе урока мы покажем вам несколько менее известных опций команды journalctl, которые мы считаем полезными.

journalctl в расширенных примерах Linux

  1. Чтобы видеть только сообщения, относящиеся к ядру, используйте опцию -k.

    
    journalctl -k
    
  2. Поскольку записей журнала очень много, может быть полезно видеть только те из них, которые имеют определенный приоритет. Наивысший приоритет — уровень 0, а самый низкий — уровень 7. Уровни лога следующие:

    
    0: emergency
    1: alert
    2: critical
    3: error
    4: warning
    5: notice
    6: info
    7: debug
    

    Используйте опцию -p для просмотра логов определенного уровня, а также тех, которые выше него по приоритету. В этом примере мы будем использовать уровень 3, который представляет собой любую запись, помеченную как ошибка, критическая, предупреждение или чрезвычайная ситуация.

    
    journalctl -p 3
    
  3. Чтобы получить вывод в формате JSON, который может облегчить разбор в определенных программах, используйте опцию -o следующим образом:

    
    journalctl -o json
    

    ИЛИ

    
    journalctl -o json-pretty
    
  4. Чтобы просмотреть все журналы по мере их создания, используйте опцию -f. Это работает точно так же, как опция -f для команды tail.

    
    journalctl -f
    
  5. Чтобы узнать, сколько места на диске занимают все ваши файлы журнала:

    
    journalctl --disk-usage
    

Заключение

В этом уроке мы узнали все о команде journalctl в Linux. Команда journalctl необходима для пользователей и администраторов, которым необходимо устранять системные ошибки или отслеживать аномалии в журналах. Для дальнейшего чтения ознакомьтесь с другим нашим уроком по Введение в журнал Systemd.

Статьи по данной тематике: