Journald: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 1: Строка 1:
==Основные команды==
==Основные команды==
* Чтение всех логов:
* Чтение всех логов:
<source lang="bash">
<source lang="bash">
Строка 9: Строка 8:
journalctl -b
journalctl -b
</source>
</source>
* Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 с двух предыдущих и.т.д):
* Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 с двух предыдущих и т.д.):
<source lang="bash">
<source lang="bash">
journalctl -b -1
journalctl -b -1
Строка 74: Строка 73:


== Основные настройки ==
== Основные настройки ==
Файл настройки находится в /etc/systemd/journald.conf и состоит из следующих секций:
Файл настройки находится в /etc/systemd/journald.conf и состоит из следующих секций:


Строка 114: Строка 112:




* '''TTYPath=''' Назначает консоль ''TTY'', для вывода сооющений, если установлен параметр '''ForwardToConsole=yes'''. По-умолчанию, используется ''/dev/console''. Для того, чтобы вывести на 12 консоль устанавливаем '''TTYPath=/dev/tty12'''
* '''TTYPath=''' Назначает консоль ''TTY'', для вывода сообщений, если установлен параметр '''ForwardToConsole=yes'''. По-умолчанию, используется ''/dev/console''. Для того, чтобы вывести на 12 консоль устанавливаем '''TTYPath=/dev/tty12'''




* '''MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall=''' Определяет максимальный уровень сообщений который сохраняется в журнал, выводится на традиционный системный журнал ''Syslog'', буфер журнала ядра (''kmsg''), консоль или стену. Значения: '''emerg, alert, crit, err, warning, notice, info, debug''' или цифры от 0 до 7 (соответствуют уровням).
* '''MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall=''' Определяет максимальный уровень сообщений который сохраняется в журнал, выводится на традиционный системный журнал ''Syslog'', буфер журнала ядра (''kmsg''), консоль или стену. Значения: '''emerg, alert, crit, err, warning, notice, info, debug''' или цифры от 0 до 7 (соответствуют уровням).


== Ссылки ==
== Ссылки ==
Строка 126: Строка 121:
*[[Участник:HihinRuslan/Systemd| Улучшаем Systemd]]
*[[Участник:HihinRuslan/Systemd| Улучшаем Systemd]]


[[Категория:Admin]]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}

Версия от 21:08, 27 декабря 2015

Основные команды

  • Чтение всех логов:
journalctl
  • Логи с момента запуска системы:
journalctl -b
  • Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 с двух предыдущих и т.д.):
journalctl -b -1
  • Вывод последней записи:
journalctl -f
  • Показать все сообщения за последние 20 минут:
journalctl --since "20 min ago"
  • Логи в реальном времени
journalctl -af
  • Показать кольцевой буфер ядра:
journalctl -k
  • Все сообщение конкретной утилиты, например, systemd:
journalctl /usr/lib/systemd/systemd
  • Все сообщения конкретного процесса:
journalctl _PID=1
  • Все сообщения конкретного юнита:
journalctl -u netcfg
  • Журнал хранится в двоичном формате, поэтому в окружении, где не установлен systemd, его логи можно посмотреть с помощью команды strings:
strings /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal | grep -i сообщение
  • Если же имеется файл журнала, например, с другого компьютера и systemd установлен, то посмотреть его содержимое проще:


из директории

journalctl -D /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd

из файла

journalctl --file /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal

Анализ этапа загрузки

Для анализа этапа инициализации системы используется утилита systemd-analyze. Для установки делаем от root:

apt-get install systemd-analyze

Выявляем самые медленные процессы (от пользователя):

systemd-analyze blame

Выводим график загрузки процессов в векторный рисунок:

systemd-analyze plot > file.svg

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

Файл настройки находится в /etc/systemd/journald.conf и состоит из следующих секций:

  • Storage= Указывает, где хранить журнал. Доступны следующие параметры:
    • volatile Журнал хранится в оперативной памяти, т.е. в каталоге /run/log/journal.
    • persistent Данные хранятся на диске, т.е. в каталоге /var/log/journal
    • auto используется по-умолчанию
    • none Журнал не ведётся


  • Compress= Принимает значения "yes" или "no". Если включена (по-умолчанию) сообщения перед записью в журнал, будут сжиматься.


  • Seal= Принимает значения "yes" или "no". Если включена (по-умолчанию) будет включена защита Forward Secure Sealing (FSS), которая позволяет накладывать криптографические отпечатки на журнал системных логов.


  • SplitMode= Определяет доступ к журналу пользователям. Доступны следующие параметры:
    • uid Все пользователи получают доступ к чтению системного журнала. Используется по-умочанию.
    • login Каждый пользователь может читать только сообщения, относящиеся к его сеансу.
    • none Пользователи не имеют доступа к системному журналу.


  • SyncIntervalSec= Таймаут, после которого происходит синхронизация и запись журнала на диск. Относится только к уровням ERR, WARNING, NOTICE, INFO, DEBUG. Сообщения уровня CRIT, ALERT, EMERG записываются сразу на диск.


  • RateLimitInterval= и RateLimitBurst= Настройки ограничения скорости генерации сообщений для каждой службы. Если в интервале времени, определяемого RateLimitInterval=, больше сообщений, чем указано в RateLimitBurst= регистрируются службой, все дальнейшие сообщения в интервале отбрасываются, пока интервал не закончится.При этом генерируется сообщение о количестве отброшенных сообщений. По умолчанию 1000 сообщений за 30 секунд. Единицы измерения: "s", "min", "h", "ms", "us". Чтобы выключить ограничение скорости, установите значения в 0.


  • SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= Определяет ограничения на размер журнала. Параметры с префиксом System определяют максимальный размер журнала, который может быть сохранён на файловую систему, а именно в каталог /var/log/journal. Параметры с префиксом Runtime определяют максимальный размер журнала, который может быть сохранён в оперативную память, а именно в каталог /run/log/journal. SystemMaxUse= и RuntimeMaxUse= сколько дискового пространства Systemd-journald может использовать под журнал (по-умолчанию 10% и 15% соответственно). SystemKeepFree= и RuntimeKeepFree= определяют сколько дискового пространства Systemd-journald должен оставить свободным для других целей. SystemMaxFileSize= и RuntimeMaxFileSize= определяют максимальный размер файлов журнала (по-умолчанию 1/8 от SystemMaxUse= или RuntimeMaxUse). Единицы измерения: K, M, G, T, P, E.


  • MaxRetentionSec= Максимальное время хранения записей журнала. Единицы измерения: year, month, week, day, h или m


  • MaxFileSec= Максимальное время хранения записей в одном файле журнала, после которого он переводится в следующий.


  • ForwardToSyslog=, ForwardToKMsg=, ForwardToConsole=, ForwardToWall= Определяют куда направлять сообщения: в традиционный системный журнал Syslog, в буфер журнала ядра (kmsg), на системную консоль, или на стену, чтобы было видно всем зарегистрированным пользователям. Эти опции принимают логические аргументы. Если переадресация на Syslog включен, но Syslog демон не работает, соответствующий параметр не имеет никакого эффекта. По умолчанию, только стена включена. Эти параметры могут быть переопределены во время загрузки с параметрами командной строки ядра systemd.journald.forward_to_syslog =, systemd.journald.forward_to_kmsg =, systemd.journald.forward_to_console = и systemd.journald.forward_to_wall =. При пересылке в консоль, должен быть установлен TTYPath =, как будет описано ниже.


  • TTYPath= Назначает консоль TTY, для вывода сообщений, если установлен параметр ForwardToConsole=yes. По-умолчанию, используется /dev/console. Для того, чтобы вывести на 12 консоль устанавливаем TTYPath=/dev/tty12


  • MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall= Определяет максимальный уровень сообщений который сохраняется в журнал, выводится на традиционный системный журнал Syslog, буфер журнала ядра (kmsg), консоль или стену. Значения: emerg, alert, crit, err, warning, notice, info, debug или цифры от 0 до 7 (соответствуют уровням).

Ссылки