Шпаргалка journalctl. Стандартный вывод и аналог tail.

Очередная шпаргалка по journalctl. Первые две: Где находятся журналы и сколько они занимают и Как искать в журнале, ошибки и процессы

Использование стандартного вывода

По умолчанию journalctl использует для вывода журнала сообщений внешнюю утилиту less. Это не всегда бывает удобно, ведь в этом случае невозможно применять стандартные утилиты для обработки текстовых данных. Например, если мы хотим использовать grep для дополнительной фильтрации, следует направить сообщения от journalctl сразу на стандартный вывод. Для этого предусмотрен отдельный параметр --no-pager, используя который вывод journalctl можно будет передать другим утилитам для дальнейшей обработки или сохранить в текстовом файле. Например:

# journalctl -p err -b -1 --no-pager | grep smbd > /tmp/smbd.err

Можно изменить вывод через переменную окружения:

# export SYSTEMD_PAGER=cat

Аналог tail или просмотр информации о недавних событиях

Для просмотра информации о последних событиях используется опция -n. По умолчанию выводится 10 последних сообщений. Для вывода другого количества сообщений следует указать число этих сообщений после опции -n:

# journalctl -n
# journalctl -n 25

Для отслеживания сообщений журнала в реальном времени используется опция -f. Она прекрасно работает совместно с другими параметрами фильтрации.

# journalctl -f
# journalctl -f -u nginx -u php-fpm

Использование форматов вывода

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

  • cat – только сообщения из логов без служебных полей;
  • export – бинарный формат, подходит для экспорта или резервного копирования логов;
  • json – стандартный JSON, одна запись на строку
  • json-pretty – отформатированный, удобо-читаемый JSON
  • short – формат вывода syslog по умолчанию;
  • short-iso – формат вывода syslog с метками времени в формате ISO 8601;
  • short-monotonic – формат вывода syslog c метками монотонного времени (monotonic timestamp);
  • short-precise – формат вывода syslog с метками точного времени (время событий указывается с точностью до микросекунд);
  • verbose – максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).

Пример команды:

# journalctl -b -u nginx -o json-pretty

Какая информация хранится в журналах

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

# journalctl -o verbose -n 1

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

Wed 2017-05-31 17:32:51.718196 EEST [s=20c67a50f2ea48e383a0f070685a6c73;i=65c67;b=f778d05bffa44062a6d58b80354e0748;m=87aece2cb;t=550d2cb89e034;x=2c4b88e7c29159
    _MACHINE_ID=601956dc24a848aabcfc29afe3903a34
    _HOSTNAME=spiridon
    PRIORITY=6
    SYSLOG_FACILITY=3
    _UID=0
    _GID=0
    _CAP_EFFECTIVE=3fffffffff
    _TRANSPORT=stdout
    SYSLOG_IDENTIFIER=slim
    _COMM=slim
    _EXE=/usr/bin/slim
    _CMDLINE=/usr/bin/slim -nodaemon
    _SYSTEMD_OWNER_UID=1000
    _SYSTEMD_SLICE=user-1000.slice
    _SYSTEMD_USER_SLICE=-.slice
    _SYSTEMD_CGROUP=/user.slice/user-1000.slice/session-c1.scope
    _SYSTEMD_SESSION=c1
    _SYSTEMD_UNIT=session-c1.scope
    _SYSTEMD_USER_UNIT=slim.service
    MESSAGE=urxvt: Loading image icon failed, continuing without.
    _PID=644
    _BOOT_ID=f778d05bffa44062a6d58b80354e0748
    _SYSTEMD_INVOCATION_ID=e440a0ffa93243d39699fd8591da7d96

Журнал индексируется по каждому из этих полей и поэтому в запросах можно использовать любое из этих полей для фильтрации и вывода сообщений. А как строить такие запросы описано в статье Как искать в журнале, ошибки и процессы.


Комментарии

Оставить комментарий

Ответ на Шпаргалка journalctl. Стандартный вывод и аналог tail.