Руководство по процессу очистки журнала systemd [с примерами]
Systemd включает в себя множество встроенных функций для управления системными журналами. В этом руководстве мы объясняем, как вы можете управлять системными журналами, журналами и выполнять с ними действия, такие как ротация, архивирование и очистка журналов. Мы также объясняем метод ручной очистки системного журнала и использование изменений в файлах конфигурации. .
Если ваш дистрибутив Linux поддерживает systemd, то он собирает логи всех процессов, приложений системы каждую секунду, начиная с загрузки. Все эти события регистрации управляются демоном journald
systemd. Journald собирает все журналы (информацию, предупреждения, ошибки и т. д.) и сохраняет их в виде двоичных данных в файлах на диске.
Поскольку логи остаются на диске и собираются каждую секунду, они занимают огромное дисковое пространство; особенно для старых систем и серверов. Например, в одной из моих тестовых систем, которые работают около года, размер файла журнала измеряется в ГБ.
Если вы управляете несколькими системами и серверами, всегда рекомендуется правильно управлять журналами журнала для эффективной работы. Давайте посмотрим, как вы можете управлять файлами журналов.
Журнал обслуживания systemd
Используя утилиту Journalctl systemd, вы можете запрашивать эти журналы, выполнять над ними различные операции. Например, просматривая файлы журналов разных загрузок, проверяйте последние предупреждения, ошибки конкретного процесса или приложений. Если вы не знаете об этом, я бы посоветовал вам быстро просмотреть это руководство — «использовать журналctl для просмотра и анализа журналов Systemd [с примерами]», прежде чем следовать этому руководству.
Где находятся файлы журнала физического журнала?
Демон журнала systemd собирает журналы каждой загрузки. Это означает, что он классифицирует файлы журналов в соответствии с загрузкой.
Журналы хранятся в двоичном виде по пути /var/log/journal
с папкой в качестве идентификатора компьютера.
Например:
Снимок экрана физического файла журнала -1
Снимок экрана с физическими файлами журнала -2
Также помните, что в зависимости от конфигурации системы файлы журнала времени выполнения хранятся в /run/log/journal/
. И они удаляются в каждой загрузке.
Могу ли я вручную удалить файлы журналов?
Вы можете, но не делайте этого. Вместо этого следуйте приведенным ниже инструкциям, чтобы очистить файлы журналов и освободить место на диске с помощью утилит Journalctl.
Сколько дискового пространства используется файлами журнала systemd?
Откройте терминал и выполните приведенную ниже команду.
journalctl --disk-usage
Это должно предоставить вам информацию о том, сколько фактически используется файлами журналов в вашей системе.
команда использования диска Journalctl
Если у вас есть графическая среда рабочего стола, вы можете открыть файловый менеджер, просмотреть путь /var/log/journal
и проверить свойства.
Процесс очистки журнала systemd
Эффективный способ очистки файлов журналов — это journald.conf
файлы конфигурации. В идеале вам не следует удалять файлы журналов вручную, даже если журналctl предоставляет для этого утилиту.
Давайте рассмотрим, как можно удалить его вручную, затем я объясню изменения конфигурации в journald.conf
, чтобы вам не приходилось время от времени удалять файлы вручную; Вместо этого systemd позаботится об этом автоматически в зависимости от вашей конфигурации.
Удалить вручную
Сначала вам нужно очистить
и повернуть
файлы журналов. Ротация — это способ пометить текущие активные файлы журнала как архив и создать с этого момента новый файл журнала. Переключатель очистки просит демон журнала сбросить все данные журнала, хранящиеся в /run/log/journal/
, в /var/log/journal/
, если включено постоянное хранилище.
Затем, после очистки и вращения, вам нужно запустить журналctl с переключателями Vacuum-size
, vacuum-time
и vacuum-files
, чтобы принудительно использовать systemd. чтобы очистить журналы.
Пример 1:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-time=1s
Приведенный выше набор команд удаляет все заархивированные файлы журнала журнала до последней секунды. Это эффективно очищает все. Поэтому будьте осторожны при выполнении команды.
Очистка журнала – пример
После очистки:
После очистки – использование пространства журнала
Вы также можете указать следующие суффиксы после номера в соответствии с вашими потребностями.
- с: секунды
- м: минуты
- ч: часы
- дни
- месяцы
- недели
- годы
Пример 2:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-size=400M
При этом будут удалены все архивированные файлы журнала журнала и сохранены последние файлы размером 400 МБ. Помните, что этот переключатель применяется только к архивным файлам журналов, а не к активным файлам журналов. Вы также можете использовать суффиксы, как показано ниже.
- К: КБ
- М: МБ
- Г: ГБ
Пример 3:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-files=2
Переключатель вакуумных файлов удаляет все файлы журнала ниже указанного количества. Итак, в приведенном выше примере сохраняются только два последних файла журнала, а все остальное удаляется. Опять же, это работает только с архивными файлами.
При желании вы можете комбинировать переключатели, но я бы рекомендовал не делать этого. Однако сначала обязательно запустите переключатель --rotate
.
Автоматическое удаление с помощью файлов конфигурации
Несмотря на то, что описанные выше методы хороши и просты в использовании, рекомендуется контролировать процесс очистки файла журнала журнала с помощью файлов конфигурации Journald, которые представлены в /etc/systemd/journald.conf
.
Systemd предоставляет множество параметров для эффективного управления файлами журналов. Комбинируя эти параметры, вы можете эффективно ограничить дисковое пространство, используемое файлами журнала. Давайте взглянем.
journald.conf parameter | Description | Example |
SystemMaxUse | Specifies the maximum disk space that can be used by the journal in persistent storage | SystemMaxUse=500M |
SystemKeepFree | Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. | SystemKeepFree=100M |
SystemMaxFileSize | Controls how large individual journal files can grow to in persistent storage before being rotated. | SystemMaxFileSize=100M |
RuntimeMaxUse | Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem). | RuntimeMaxUse=100M |
RuntimeKeepFree | Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem). | RuntimeMaxUse=100M |
RuntimeMaxFileSize | Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated. | RuntimeMaxFileSize=200M |
Если вы добавите эти значения в работающую систему в файл /etc/systemd/journald.conf
, вам придется перезапустить журнал после обновления файла. Для перезапуска используйте следующую команду.
sudo systemctl restart systemd-journald
Проверка файлов журналов
Разумнее проверить целостность файлов журналов после их очистки. Для этого выполните команду ниже. Команда показывает PASS, FAIL для файла журнала.
journalctl --verify
проверить файлы журналов
Заключительные замечания
Я надеюсь, что это руководство поможет вам понять основы процесса управления журналами systemd. С их помощью вы можете управлять дисковым пространством, используемым файлами журналов в вашей системе или на серверах, ограничивая пространство и очищая старые файлы журналов. Это всего лишь основные команды, вы можете комбинировать их разными способами для достижения требований вашей системы.
- руководство по журналу
- Руководство по journald.conf