Как использовать Journalctl для просмотра и управления журналами Systemd

Вступление

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

Журнал реализован с помощью демонаjournald, который обрабатывает все сообщения, создаваемые ядром, initrd, службами и т. Д. В этом руководстве мы обсудим, как использовать утилитуjournalctl, которую можно использовать для доступа к данным, хранящимся в журнале, и управления ими.

Главная идея

Одним из стимулов создания журналаsystemd является централизация управления журналами независимо от того, откуда исходят сообщения. Поскольку большая часть процесса загрузки и управления службами выполняется процессомsystemd, имеет смысл стандартизировать способ сбора журналов и доступа к ним. Демонjournald собирает данные из всех доступных источников и сохраняет их в двоичном формате для простого и динамического манипулирования.

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

Хранение данных журнала в двоичном формате также означает, что данные могут отображаться в произвольных форматах вывода в зависимости от того, что вам нужно в данный момент. Например, для управления ежедневным журналом вы можете использовать его для просмотра журналов в стандартном форматеsyslog, но если вы решите позже графически отображать прерывания обслуживания, вы можете вывести каждую запись как объект JSON, чтобы сделать ее пригодной для использования. ваш сервис построения графиков. Поскольку данные не записываются на диск в виде простого текста, преобразование не требуется, если вам нужен другой формат по требованию.

Журналsystemd можно использовать либо с существующей реализациейsyslog, либо он может заменить функциональностьsyslog, в зависимости от ваших потребностей. Хотя журналsystemd покрывает большинство потребностей администратора в ведении журнала, он также может дополнять существующие механизмы ведения журнала. Например, у вас может быть централизованный серверsyslog, который вы используете для компиляции данных с нескольких серверов, но вы также можете чередовать журналы из нескольких служб в одной системе с журналомsystemd. Вы можете сделать оба из них, комбинируя эти технологии.

Установка системного времени

Одним из преимуществ использования двоичного журнала для ведения журнала является возможность просмотра записей журнала в формате UTC или по местному времени по желанию. По умолчаниюsystemd отображает результаты по местному времени.

Из-за этого, прежде чем мы начнем с журналом, мы убедимся, что часовой пояс настроен правильно. Пакетsystemd фактически поставляется с инструментом под названиемtimedatectl, который может в этом помочь.

Сначала посмотрите, какие часовые пояса доступны с опциейlist-timezones:

timedatectl list-timezones

Это будет список часовых поясов, доступных в вашей системе. Когда вы найдете тот, который соответствует местоположению вашего сервера, вы можете установить его, используя параметрset-timezone:

sudo timedatectl set-timezone zone

Чтобы убедиться, что ваш компьютер сейчас использует правильное время, используйте только командуtimedatectl или с параметромstatus. Дисплей будет таким же:

timedatectl status
      Local time: Thu 2015-02-05 14:08:06 EST
  Universal time: Thu 2015-02-05 19:08:06 UTC
        RTC time: Thu 2015-02-05 19:08:06
       Time zone: America/New_York (EST, -0500)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Первая строка должна отображать правильное время.

Базовый просмотр журнала

Чтобы просмотреть журналы, собранные демономjournald, используйте командуjournalctl.

При использовании отдельно каждая запись журнала, имеющаяся в системе, будет отображаться в пейджере (обычноless), чтобы вы могли его просмотреть. Самые старые записи будут наверху:

journalctl
-- Logs begin at Tue 2015-02-03 21:48:52 UTC, end at Tue 2015-02-03 22:29:38 UTC. --
Feb 03 21:48:52 localhost.localdomain systemd-journal[243]: Runtime journal is using 6.2M (max allowed 49.
Feb 03 21:48:52 localhost.localdomain systemd-journal[243]: Runtime journal is using 6.2M (max allowed 49.
Feb 03 21:48:52 localhost.localdomain systemd-journald[139]: Received SIGTERM from PID 1 (systemd).
Feb 03 21:48:52 localhost.localdomain kernel: audit: type=1404 audit(1423000132.274:2): enforcing=1 old_en
Feb 03 21:48:52 localhost.localdomain kernel: SELinux: 2048 avtab hash slots, 104131 rules.
Feb 03 21:48:52 localhost.localdomain kernel: SELinux: 2048 avtab hash slots, 104131 rules.
Feb 03 21:48:52 localhost.localdomain kernel: input: ImExPS/2 Generic Explorer Mouse as /devices/platform/
Feb 03 21:48:52 localhost.localdomain kernel: SELinux:  8 users, 102 roles, 4976 types, 294 bools, 1 sens,
Feb 03 21:48:52 localhost.localdomain kernel: SELinux:  83 classes, 104131 rules

. . .

У вас, скорее всего, будут страницы и страницы данных для прокрутки, которые могут содержать десятки или сотни тысяч строк, еслиsystemd находится в вашей системе в течение длительного времени. Это показывает, сколько данных доступно в базе данных журнала.

Формат будет знаком тем, кто привык к стандартному логированиюsyslog. Однако на самом деле он собирает данные из большего числа источников, чем могут обеспечить традиционные реализацииsyslog. Он включает в себя журналы процесса ранней загрузки, ошибки ядра и initrd, а также стандартную ошибку приложения. Все это доступно в журнале.

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

Если вы хотите отображать отметки времени в формате UTC, вы можете использовать флаг--utc:

journalctl --utc

Фильтрация журнала по времени

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

Просмотр журналов с текущей загрузки

Самый простой из них, который вы можете использовать ежедневно, - это флаг-b. Это покажет вам все записи журнала, которые были собраны с момента последней перезагрузки.

journalctl -b

Это поможет вам идентифицировать и управлять информацией, которая имеет отношение к вашей текущей среде.

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

. . .

-- Reboot --

. . .

Это может быть использовано, чтобы помочь вам логически разделить информацию на сеансы загрузки.

Прошлые сапоги

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

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

sudo mkdir -p /var/log/journal

Или вы можете отредактировать файл конфигурации журнала:

sudo nano /etc/systemd/journald.conf

В разделе[Journal] установите для параметраStorage= значение «persistent», чтобы включить постоянное ведение журнала:

/etc/systemd/journald.conf

. . .
[Journal]
Storage=persistent

Когда на вашем сервере включено сохранение предыдущих загрузок,journalctl предоставляет некоторые команды, которые помогут вам работать с загрузками как с единицей деления. Чтобы увидеть загрузку, о которой знаетjournald, используйте опцию--list-boots сjournalctl:

journalctl --list-boots
-2 caf0524a1d394ce0bdbcff75b94444fe Tue 2015-02-03 21:48:52 UTC—Tue 2015-02-03 22:17:00 UTC
-1 13883d180dc0420db0abcb5fa26d6198 Tue 2015-02-03 22:17:03 UTC—Tue 2015-02-03 22:19:08 UTC
 0 bed718b17a73415fade0e4e7f4bea609 Tue 2015-02-03 22:19:12 UTC—Tue 2015-02-03 23:01:01 UTC

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

Для отображения информации из этих ботинок вы можете использовать информацию из первого или второго столбца.

Например, чтобы увидеть журнал из предыдущей загрузки, используйте относительный указатель-1 с флагом-b:

journalctl -b -1

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

journalctl -b caf0524a1d394ce0bdbcff75b94444fe

Время Windows

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

Вы можете фильтровать по произвольным временным ограничениям, используя параметры--since и--until, которые ограничивают отображаемые записи теми, которые отображаются после или до указанного времени, соответственно.

Значения времени могут быть в разных форматах. Для значений абсолютного времени вы должны использовать следующий формат:

YYYY-MM-DD HH:MM:SS

Например, мы можем увидеть все записи с 10 января 2015 года в 17:15, набрав:

journalctl --since "2015-01-10 17:15:00"

Если компоненты вышеуказанного формата не включены, будут применены некоторые значения по умолчанию. Например, если дата не указана, будет принята текущая дата. Если компонент времени отсутствует, будет подставлено «00:00:00» (полночь). Поле секунд также можно оставить по умолчанию «00»:

journalctl --since "2015-01-10" --until "2015-01-11 03:00"

Журнал также понимает некоторые относительные значения и названные ярлыки. Например, вы можете использовать слова «вчера», «сегодня», «завтра» или «сейчас». Вы делаете относительное время, добавляя «-» или «+» к нумерованному значению или используя такие слова, как «назад» в конструкции предложения.

Чтобы получить данные вчера, вы можете набрать:

journalctl --since yesterday

Если вы получили сообщения о прерывании обслуживания, начинающемся в 9:00 и продолжающемся до часа назад, вы можете ввести:

journalctl --since 09:00 --until "1 hour ago"

Как видите, относительно легко определить гибкие временные рамки для фильтрации записей, которые вы хотите видеть.

Фильтрация по интересам сообщений

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

По подразделению

Возможно, самый полезный способ фильтрации - по интересующему вас устройству. Мы можем использовать опцию-u для фильтрации таким образом.

Например, чтобы увидеть все журналы из модуля Nginx в нашей системе, мы можем набрать:

journalctl -u nginx.service

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

journalctl -u nginx.service --since today

Этот тип фокуса становится чрезвычайно полезным, когда вы пользуетесь способностью журнала чередовать записи из разных блоков. Например, если ваш процесс Nginx подключен к модулю PHP-FPM для обработки динамического содержимого, вы можете объединить записи обоих в хронологическом порядке, указав оба модуля:

journalctl -u nginx.service -u php-fpm.service --since today

Это может упростить обнаружение взаимодействия между различными программами и системами отладки, а не отдельными процессами.

По процессу, пользователю или идентификатору группы

Некоторые службы порождают множество дочерних процессов для выполнения работы. Если вы нашли точный PID процесса, который вас интересует, вы также можете отфильтровать его.

Для этого мы можем фильтровать, указав поле_PID. Например, если интересующий нас PID - 8088, мы могли бы набрать:

journalctl _PID=8088

В других случаях вы можете захотеть показать все записи, зарегистрированные от определенного пользователя или группы. Это можно сделать с помощью фильтров_UID или_GID. Например, если ваш веб-сервер работает под пользователемwww-data, вы можете найти идентификатор пользователя, набрав:

id -u www-data
33

После этого вы можете использовать идентификатор, который был возвращен для фильтрации результатов журнала:

journalctl _UID=33 --since today

Журналsystemd имеет множество полей, которые можно использовать для фильтрации. Некоторые из них передаются из процесса, который регистрируется, а некоторые применяютсяjournald, используя информацию, которую он собирает из системы во время журнала.

Верхнее подчеркивание указывает, что поле_PID относится к последнему типу. Журнал автоматически записывает и индексирует PID процесса, который регистрируется для последующей фильтрации. Вы можете узнать обо всех доступных полях журнала, набрав:

man systemd.journal-fields

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

Например, чтобы узнать, для каких идентификаторов групп есть записи в журналеsystemd, вы можете ввести:

journalctl -F _GID
32
99
102
133
81
84
100
0
124
87

Это покажет вам все значения, которые журнал сохранил для поля идентификатора группы. Это может помочь вам построить ваши фильтры.

По пути компонента

Мы также можем отфильтровать, указав путь.

Если путь ведет к исполняемому файлу,journalctl отобразит все записи, которые включают данный исполняемый файл. Например, чтобы найти те записи, которые включают исполняемый файлbash, вы можете ввести:

journalctl /usr/bin/bash

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

Отображение сообщений ядра

Сообщения ядра, которые обычно находятся в выводеdmesg, также могут быть получены из журнала.

Чтобы отображать только эти сообщения, мы можем добавить к нашей команде флаги-k или--dmesg:

journalctl -k

По умолчанию это будет отображать сообщения ядра от текущей загрузки. Вы можете указать альтернативную загрузку, используя обычные флаги выбора загрузки, которые обсуждались ранее. Например, чтобы получить сообщения от пяти загрузок назад, вы можете набрать:

journalctl -k -b -5

По приоритету

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

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

Например, чтобы показать только записи, зарегистрированные с уровнем ошибки или выше, вы можете набрать:

journalctl -p err -b

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

  • 0: emerg

  • 1: оповещение

  • 2: крит

  • 3: ошибка

  • 4: предупреждение

  • 5: уведомление

  • 6: информация

  • 7: отладка

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

Изменение отображения журнала

Выше мы продемонстрировали выбор записи посредством фильтрации. Однако есть и другие способы изменить вывод. Мы можем настроить отображениеjournalctl в соответствии с различными потребностями.

Усекать или расширять вывод

Мы можем настроить отображение данныхjournalctl, указав ему сжимать или расширять вывод.

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

Если вы предпочитаете обрезать вывод, вставив многоточие там, где информация была удалена, вы можете использовать параметр--no-full:

journalctl --no-full
. . .

Feb 04 20:54:13 journalme sshd[937]: Failed password for root from 83.234.207.60...h2
Feb 04 20:54:13 journalme sshd[937]: Connection closed by 83.234.207.60 [preauth]
Feb 04 20:54:13 journalme sshd[937]: PAM 2 more authentication failures; logname...ot

Вы также можете пойти в противоположном направлении и указатьjournalctl отображать всю свою информацию, независимо от того, содержит ли она непечатаемые символы. Мы можем сделать это с помощью флага-a:

journalctl -a

Выход на стандартный выход

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

Вы можете сделать это с помощью опции--no-pager:

journalctl --no-pager

Это может быть немедленно передано в утилиту обработки или перенаправлено в файл на диске, в зависимости от ваших потребностей.

Выходные форматы

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

Например, вы можете вывести записи журнала в формате JSON, набрав:

journalctl -b -u nginx -o json
{ "__CURSOR" : "s=13a21661cf4948289c63075db6c25c00;i=116f1;b=81b58db8fd9046ab9f847ddb82a2fa2d;m=19f0daa;t=50e33c33587ae;x=e307daadb4858635", "__REALTIME_TIMESTAMP" : "1422990364739502", "__MONOTONIC_TIMESTAMP" : "27200938", "_BOOT_ID" : "81b58db8fd9046ab9f847ddb82a2fa2d", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "752737531a9d1a9c1e3cb52a4ab967ee", "_HOSTNAME" : "desktop", "SYSLOG_FACILITY" : "3", "CODE_FILE" : "src/core/unit.c", "CODE_LINE" : "1402", "CODE_FUNCTION" : "unit_status_log_starting_stopping_reloading", "SYSLOG_IDENTIFIER" : "systemd", "MESSAGE_ID" : "7d4958e842da4a758f6c1cdc7b36dcc5", "_TRANSPORT" : "journal", "_PID" : "1", "_COMM" : "systemd", "_EXE" : "/usr/lib/systemd/systemd", "_CMDLINE" : "/usr/lib/systemd/systemd", "_SYSTEMD_CGROUP" : "/", "UNIT" : "nginx.service", "MESSAGE" : "Starting A high performance web server and a reverse proxy server...", "_SOURCE_REALTIME_TIMESTAMP" : "1422990364737973" }

. . .

Это полезно для разбора с утилитами. Вы можете использовать форматjson-pretty, чтобы лучше обрабатывать структуру данных, прежде чем передавать ее потребителю JSON:

journalctl -b -u nginx -o json-pretty
{
    "__CURSOR" : "s=13a21661cf4948289c63075db6c25c00;i=116f1;b=81b58db8fd9046ab9f847ddb82a2fa2d;m=19f0daa;t=50e33c33587ae;x=e307daadb4858635",
    "__REALTIME_TIMESTAMP" : "1422990364739502",
    "__MONOTONIC_TIMESTAMP" : "27200938",
    "_BOOT_ID" : "81b58db8fd9046ab9f847ddb82a2fa2d",
    "PRIORITY" : "6",
    "_UID" : "0",
    "_GID" : "0",
    "_CAP_EFFECTIVE" : "3fffffffff",
    "_MACHINE_ID" : "752737531a9d1a9c1e3cb52a4ab967ee",
    "_HOSTNAME" : "desktop",
    "SYSLOG_FACILITY" : "3",
    "CODE_FILE" : "src/core/unit.c",
    "CODE_LINE" : "1402",
    "CODE_FUNCTION" : "unit_status_log_starting_stopping_reloading",
    "SYSLOG_IDENTIFIER" : "systemd",
    "MESSAGE_ID" : "7d4958e842da4a758f6c1cdc7b36dcc5",
    "_TRANSPORT" : "journal",
    "_PID" : "1",
    "_COMM" : "systemd",
    "_EXE" : "/usr/lib/systemd/systemd",
    "_CMDLINE" : "/usr/lib/systemd/systemd",
    "_SYSTEMD_CGROUP" : "/",
    "UNIT" : "nginx.service",
    "MESSAGE" : "Starting A high performance web server and a reverse proxy server...",
    "_SOURCE_REALTIME_TIMESTAMP" : "1422990364737973"
}

. . .

Для отображения можно использовать следующие форматы:

  • cat: отображает только само поле сообщения.

  • export: двоичный формат, подходящий для передачи или резервного копирования.

  • json: стандартный JSON с одной записью в строке.

  • json-pretty: формат JSON для удобства чтения человеком.

  • json-sse: вывод в формате JSON, обернутый для обеспечения совместимости с добавлением отправленного сервером события

  • short: вывод стиляsyslog по умолчанию

  • short-iso: формат по умолчанию, расширенный для отображения временных меток настенных часов ISO 8601.

  • short-monotonic: формат по умолчанию с монотонными отметками времени.

  • short-precise: формат по умолчанию с точностью до микросекунд

  • verbose: показывает все поля журнала, доступные для записи, включая те, которые обычно скрыты внутри.

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

Мониторинг активных процессов

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

Отображение последних журналов

Чтобы отобразить заданное количество записей, вы можете использовать параметр-n, который работает точно так же, какtail -n.

По умолчанию отображаются последние 10 записей:

journalctl -n

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

journalctl -n 20

Следующие журналы

Чтобы активно следить за журналами по мере их написания, вы можете использовать флаг-f. Опять же, это работает, как и следовало ожидать, если у вас есть опыт использованияtail -f:

journalctl -f

Ведение журнала

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

Поиск текущего использования диска

Вы можете узнать количество места, которое журнал в настоящее время занимает на диске, используя флаг--disk-usage:

journalctl --disk-usage
Journals take up 8.0M on disk.

Удаление старых бревен

Если вы хотите уменьшить свой журнал, вы можете сделать это двумя разными способами (доступно вsystemd версии 218 и новее).

Если вы используете опцию--vacuum-size, вы можете уменьшить свой журнал, указав размер. Это удалит старые записи, пока общее пространство журнала, занимаемое на диске, не достигнет запрошенного размера:

sudo journalctl --vacuum-size=1G

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

Например, чтобы сохранить записи за прошлый год, вы можете ввести:

sudo journalctl --vacuum-time=1years

Ограничение расширения журнала

Вы можете настроить свой сервер таким образом, чтобы он ограничивал пространство, занимаемое журналом. Это можно сделать, отредактировав файл/etc/systemd/journald.conf.

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

  • SystemMaxUse=: указывает максимальное дисковое пространство, которое может использовать журнал в постоянном хранилище.

  • SystemKeepFree=: указывает объем пространства, которое журнал должен оставлять свободным при добавлении записей журнала в постоянное хранилище.

  • SystemMaxFileSize=: определяет, насколько большие отдельные файлы журнала могут вырасти в постоянном хранилище перед ротацией.

  • RuntimeMaxUse=: указывает максимальное дисковое пространство, которое может использоваться в энергозависимой памяти (в файловой системе/run).

  • RuntimeKeepFree=: указывает количество пространства, которое должно быть зарезервировано для других целей при записи данных в энергозависимое хранилище (в файловой системе/run).

  • RuntimeMaxFileSize=: указывает количество места, которое отдельный файл журнала может занять в энергозависимой памяти (в файловой системе/run) перед ротацией.

Устанавливая эти значения, вы можете контролировать, какjournald потребляет и сохраняет пространство на вашем сервере. Имейте в виду, чтоSystemMaxFileSize иRuntimeMaxFileSize будут нацелены на заархивированные файлы для достижения установленных ограничений. Это важно помнить при интерпретации количества файлов после операции очистки.

Заключение

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

Related