Файл /etc/systemd/journald.conf#

Описание#

Файл конфигурации journald.conf, расположенный в каталоге /etc/systemd/, является важным компонентом системы ведения журналов в операционных системах на базе Linux, использующих систему инициализации systemd. Файл journald.conf и связанные с ними файлы drop-in настраивают параметры службы журнала systemd-journald.service. Ознакомиться с общим синтаксисом конфигурации можно в разделе «Общий синтаксис файлов конфигурации systemd».

Примечание

Drop-in — метод управления конфигурационными файлами в Linux. Файлы drop-in используют для добавления дополнительных настроек к уже существующему файлу конфигурации без необходимости его редактирования.

Экземпляр systemd-journald, управляющий пространством имен по умолчанию, настраивается через journald.conf. Экземпляры, отвечающие за другие пространства имен, используют файлы journald@NAMESPACE.conf и соответствующие drop-in. Это позволяет каждому пространству имен иметь свою уникальную конфигурацию. Больше информации о пространствах имен журнала можно найти на соответствующей странице справочника man с помощью команды man systemd-journald.service.

Каталог конфигурации и приоритезация#

Конфигурация по умолчанию определяется во время компиляции, поэтому ее изменение требуется только при необходимости отклонения от стандартных значений. Основной файл конфигурации в /etc/systemd/ изначально содержит комментарии, демонстрирующие значения по умолчанию, что служит руководством для администратора. Реальные переопределения можно создавать путем редактирования этого файла или создания drop-in, как описано далее. Использование drop-in для локальной настройки предпочтительнее прямого изменения основного файла конфигурации.

Кроме основного файла конфигурации, настройки drop-in загружаются из каталогов /usr/lib/systemd/*.conf.d/, /usr/local/lib/systemd/*.conf.d/ и /etc/systemd/*.conf.d/. Эти drop-in имеют более высокий приоритет и могут переопределять настройки основного файла. Файлы в подкаталогах конфигурации .conf.d/ сортируются по имени файла в лексикографическом порядке, независимо от их расположения. Если несколько файлов указывают один и тот же параметр, то для параметров с одним значением берется последнее, а для параметров с несколькими значениями все значения объединяются в порядке их появления.

Пакеты могут устанавливать свои конфигурации drop-in в /usr/. Файлы в /etc/ предназначены для локального администратора, который может использовать эту логику для переопределения конфигурационных файлов, установленных пакетами. Основной файл конфигурации имеет самый низкий приоритет. Рекомендуется присваивать всем именам файлов в этих подкаталогах префикс с двузначным номером и знаком тире, чтобы упростить управление файлами.

Для отключения конфигурационного файла, установленного сторонним поставщиком, рекомендуется создать символическую ссылку на /dev/null в каталоге конфигурации /etc/ с именем файла конфигурации поставщика.

Параметры конфигурации#

Все параметры настраиваются в разделе [Journal] файла journald.conf.

Примеры параметров:

  • Storage — способ хранения журналов. Возможные значения:

    • persistent — журналы будут храниться на диске (обычно в /var/log/journal). Позволяет сохранять логи после перезагрузки;

    • volatile — журналы будут храниться только в оперативной памяти и будут потеряны после перезагрузки;

    • auto — по умолчанию systemd будет пытаться хранить журналы на диске, но если место на диске недоступно, будет использоваться оперативная память;

    • none — хранение журнала отключено, но пересылка сообщений в консоль, kmsg и syslog будет работать.

  • LineMax — максимальная длина строки, допускаемая при преобразовании журналов потока в журналы записей. Единицы измерения: байт. Возможные значения: размер строки в байтах, при указании после числа K (кило), M (мега), G (гига), T (тера) значение будет преобразовано в соответствующее число с основанием 1024. По умолчанию: 48K.

  • ReadKMsg — обработка systemd-journal сообщений /dev/kmsg, генерируемых ядром. Возможные значения: yes или no.

  • Compress — сжатие журнала для экономии места. Возможные значения: yes или no. По умолчанию: no.

  • Seal — защита Forward Secure Sealing (FSS) для обеспечения целостности журнала. Помогает защитить данные от подделки. Возможные значения: yes или no. По умолчанию: yes.

  • SplitMode — режим разделения доступа к журналу между пользователями.

    Возможные значения:

    • uid — каждый пользователь получает отдельный журнал;

    • none — все записи хранятся в одном журнале.

  • SystemMaxUse — максимальный объем хранимого журнала для системного журнала. Возможные значения: размер в байтах, например, 100M, 1G. Если значение превышено, старые записи будут удалены.

  • SystemKeepFree — минимально допустимый объeм свободного места на диске для хранения системного журнала. Возможные значения: размер в байтах, например, 100M, 1G.

  • SystemMaxFileSize — максимальный размер одного файла журнала. Возможные значения: размер в байтах, например, 100M, 1G.

  • SystemMaxFiles — максимальное количество файлов журнала, которые могут храниться. Возможные значения: целое число. Если превышено, старые файлы будут удалены.

  • MaxRetentionSec — максимальное время хранения записей журнала. По умолчанию: 0. Возможные значения: время в year, month, week, day, h, m. Без указания единицы измерения используются секунды.

  • MaxFileSec — максимальное время хранения записей в одном файле журнала, после которого он переводится в следующий. Возможные значения: время в year, month, week, day, h, m. Без указания единицы измерения используются секунды.

  • RateLimitIntervalSec и RateLimitBurst — настройки ограничения скорости генерации сообщений для каждой службы в системе. Если в интервале времени, определяемом RateLimitIntervalSec, службой регистрируется больше сообщений, чем указано в RateLimitBurst, то все дальнейшие сообщения в интервале отбрасываются, пока интервал не закончится. При этом генерируется сообщение о количестве отброшенных сообщений. По умолчанию: 10 000 сообщений за 30 секунд.

    Интервал времени для RateLimitIntervalSec может быть задан в: s, min, h, ms, us. Чтобы выключить ограничение скорости, установите значение 0.

    Примечание

    Если служба сама устанавливает ограничения скорости через LogRateLimitIntervalSec или LogRateLimitBurst в systemd.exec, тогда эти значения будут переопределять указанные в этом разделе настройки.

  • RuntimeMaxUse — максимальный объeм хранимого временного журнала (volatile). Возможные значения: размер в байтах, например, 100M, 1G.

  • RuntimeKeepFree — минимально допустимый объeм свободного места на диске для хранения временного журнала. Возможные значения: размер в байтах, например, 100M, 1G.

  • RuntimeMaxFileSize — максимальный размер одного файла временного журнала. Возможные значения: размер в байтах, например, 100M, 1G.

  • RuntimeMaxFiles — максимальное количество временных файлов журнала. Возможные значения: целое число.

  • MaxLevelStore, MaxLevelSyslog, MaxLevelKMsg, MaxLevelConsole, MaxLevelWall — максимальные уровни логирования сообщений, которые будут сохранятся в журнал и перенаправляться в системный журнал syslog, буфер журнала ядра kmsg, в консоль или на стену.

    Возможные значения (в скобках указаны эквивалентные цифровые значения):

    • emerg (0);

    • alert (1);

    • crit (2);

    • err (3);

    • warning (4);

    • notice (5);

    • info (6);

    • debug (7).

  • ForwardToSyslog — перенаправление сообщения системного журнала в syslog. Возможные значения: yes или no. По умолчанию: no.

  • ForwardToKMsg — перенаправление сообщения системного журнала в буфер журнала ядра kmsg. Возможные значения: yes или no. По умолчанию: yes.

  • ForwardToConsole — перенаправление сообщения системного журнала в консоль. Возможные значения: yes, no или journal. По умолчанию: no.

  • ForwardToWall — перенаправление сообщения системного журнала на стену. Возможные значения: yes или no. По умолчанию: yes.

  • TTYPath — путь к терминалу, на который будут отправляться сообщения. Возможные значения: путь к терминалу, например, /dev/console.

Пересылка событий журнала в демоны syslog#

События журнала могут быть переданы другому демону ведения журнала двумя способами:

  • Немедленная пересылка сообщений в сокет /run/systemd/journal/syslog, откуда их может прочитать традиционный демон syslog. Управляется параметром ForwardToSyslog.

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

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man journald.conf