Вопрос или проблема
У меня /var/log на отдельном устройстве объемом всего 100 МБ. Я управляю дисковым пространством для обычных логов с помощью logrotate, для journald я пытался сделать это через /etc/systemd/journald.conf. Однако это не работает:
[Journal]
SystemMaxUse=50M
SystemKeepFree=16000M
RuntimeMaxUse=40M
Используемое дисковое пространство превышает 50 МБ более чем на 100%:
# journalctl --disk-usage
Архивные и активные журналы занимают 117.1M в файловой системе.
За последние недели журнал вырос до состояния, в котором journald не может исправить ситуацию самостоятельно:
# journalctl -b --no-pager _SYSTEMD_UNIT=systemd-journald.service
Dec 07 07:43:44 gateway systemd-journald[551]: Сбор сообщений аудита отключен.
Dec 07 07:43:44 gateway systemd-journald[551]: Журнал запущен
Dec 07 07:43:44 gateway systemd-journald[551]: Временной журнал (/run/log/journal/214b8447bbfe4abba739f97a142d1916) составляет 5.0M, максимум 40.0M, 35.0M свободно.
Dec 07 07:43:44 gateway systemd-journald[551]: Временной журнал (/run/log/journal/214b8447bbfe4abba739f97a142d1916) составляет 5.0M, максимум 40.0M, 35.0M свободно.
Dec 07 07:43:44 gateway systemd-journald[551]: Получен запрос клиента на сброс временного журнала.
Dec 07 07:43:44 gateway systemd-journald[551]: Файл /var/log/journal/214b8447bbfe4abba739f97a142d1916/system.journal поврежден или неправильно завершен, переименовываю и заменяю.
Dec 07 07:43:44 gateway systemd-journald[551]: Не удалось открыть системный журнал: Нет места на устройстве
Dec 07 07:43:44 gateway systemd-journald[551]: Время вернулось назад, вращение.
Я знаю, что есть несколько способов исправить ситуацию на месте, включая вакуумацию или просто удаление файлов журналов. Я также мог бы решить ситуацию на постоянной основе, настроив ежедневную задачу cron для вакуумации. Однако пока не хочу прибегать к такому временного решению и хотел бы понять, как правильно настроить journald:
Что мне нужно установить в конфигурации, чтобы эффективно ограничить journald до 50 МБ. Установки, которые у меня есть, очевидно, недостаточно хороши, хотя я пробовал гораздо больше, чем просто “SystemMaxUse”, ищя решение проблемы в Google.
На случай, если кому-то это понадобится:
/var/log/journal/214b8447bbfe4abba739f97a142d1916# ls -al
total 114328
drwxr-sr-x+ 2 root systemd-journal 1860 Dec 7 07:43 .
drwxr-sr-x+ 3 root systemd-journal 60 Nov 16 03:03 ..
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 07:25 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 07:40 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 19 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 20 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 21 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 22 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 12:46 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 17:51 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 18:16 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 25 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 26 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 27 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 28 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 29 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 30 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 1 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 2 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 3 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 4 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 6 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 7 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 7 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 21 11:08 system@0be54a54a70f4a7f93a8f5acc242ebea-00000000000093b6-00062762ac42d88f.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 21 23:01 system@0be54a54a70f4a7f93a8f5acc242ebea-0000000000009ee0-0006276971097c35.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 10:01 system@2800bad1984a4a5e8249fcdde2f73602-000000000000c71b-0006278ae6ab4e5b.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 2 11:14 system@2c862e9d86b849d29146af36c321215d-000000000001c4b3-0006283ff33cee95.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 2 22:59 system@2c862e9d86b849d29146af36c321215d-000000000001cfe1-00062846cfea0813.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 1 11:06 system@2f60706790f242a0b6a6da5ceb8f025d-000000000001aae8-0006282bd566a38b.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 1 23:00 system@2f60706790f242a0b6a6da5ceb8f025d-000000000001b61b-00062832957f4728.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 11:16 system@33c921c8f4de430ea952d48bf15537dc-000000000000e92e-0006279f04899b3d.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 16 11:53 system@34a36265677946739ad13c76a32a37c0-0000000000000324-000626fe15c43810.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 00:30 system@34a36265677946739ad13c76a32a37c0-0000000000000e2f-000627057df44c2e.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 27 11:08 system@4ab06f2235204f0386ea0bc2898ec2ee-000000000001439e-000627db5e081e2f.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 27 23:01 system@4ab06f2235204f0386ea0bc2898ec2ee-0000000000014ecd-000627e22412a6c6.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 25 00:51 system@526c4b04d01842f6908c840134f0f250-000000000001015f-000627abc68c4307.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 29 11:15 system@6639dc2057204f7592f3d4d42752fdd5-0000000000017770-0006280399b629d0.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 29 23:00 system@6639dc2057204f7592f3d4d42752fdd5-000000000001829d-0006280a78ce6aad.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 11:16 system@68cb813ae84d434abe4d596be08c3ae2-000000000002136b-0006287c4cc4b07a.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 22:36 system@68cb813ae84d434abe4d596be08c3ae2-0000000000021e9c-000628832f6f7de2.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 10:45 system@6eacf586b52643d89f3f86e64e47e6a7-00000000000041d9-00062726a7d3464f.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 19:21 system@6eacf586b52643d89f3f86e64e47e6a7-0000000000004d23-0006272cc541614e.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 26 11:32 system@8155b240de694d6fbc59a68564175bcd-00000000000129ec-000627c796c751ea.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 26 23:10 system@8155b240de694d6fbc59a68564175bcd-0000000000013519-000627ce5d484c33.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 20 10:50 system@84f1d1a7c8ff459abe0e8a3a704b1c19-0000000000007931-0006274e8be6d36a.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 20 22:20 system@84f1d1a7c8ff459abe0e8a3a704b1c19-0000000000008484-0006275512d5ec6c.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 28 11:17 system@85eb7fbdb0d04be08073188bffea4930-0000000000015d65-000627ef7bdd0835.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 28 22:45 system@85eb7fbdb0d04be08073188bffea4930-000000000001689b-000627f6621e8de9.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 25 11:10 system@99beef625c3b4e6a8b5d3eebe11be6df-0000000000011047-000627b32261d082.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 25 23:04 system@99beef625c3b4e6a8b5d3eebe11be6df-0000000000011b75-000627b9ef8d1929.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 30 11:09 system@a3c8c06e89b2478ab0f3df167225b09f-000000000001911f-00062817b77866dc.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 30 23:06 system@a3c8c06e89b2478ab0f3df167225b09f-0000000000019c51-0006281e82633a79.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 4 11:08 system@add9a48fc2484c70b7800e6194ef9a19-000000000001f826-000628682ee7fc64.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 4 21:46 system@add9a48fc2484c70b7800e6194ef9a19-0000000000020354-0006286ef4f5ac34.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 15:45 system@b632697d6df94e92aeebee7ef73fbe31-0000000000002ae6-0006271634bc89ac.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 02:47 system@b632697d6df94e92aeebee7ef73fbe31-000000000000366c-0006271cd8440ae2.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 20:51 system@bff377771a69448a9c117996ba47fc03-000000000000d7ee-000627930cd0539e.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 19 11:39 system@caf42cb256b1425d9db06ff8d610963a-0000000000005f82-0006273ac5fbbb1b.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 19 23:08 system@caf42cb256b1425d9db06ff8d610963a-0000000000006aae-00062741a42f81de.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 3 11:10 system@e1b62490f888489e8926c2642953ca15-000000000001de78-00062854112238fa.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 3 23:04 system@e1b62490f888489e8926c2642953ca15-000000000001e9aa-0006285adf7bf191.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 22 11:17 system@eb2ba0d5270841d0963aa38bb64046e6-000000000000ad66-00062776c8bf9cfd.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 22 22:59 system@eb2ba0d5270841d0963aa38bb64046e6-000000000000b89a-0006277daf11f403.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 6 11:16 system@f5586191ee47484984f06cff09ae57a4-0000000000022da2-000628906a975db2.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 6 23:09 system@f5586191ee47484984f06cff09ae57a4-00000000000238d6-000628974d44e727.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 22:36 user-1000.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 07:25 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 07:40 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 19 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 12:46 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 12:46 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 17:51 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 24 18:16 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 03:00 [email protected]~
-rw-r-----+ 1 root systemd-journal 6553600 Nov 23 10:01 user-1000@2800bad1984a4a5e8249fcdde2f73602-000000000000cf1f-0006278eb5f999e1.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 25 00:51 user-1000@526c4b04d01842f6908c840134f0f250-0000000000010564-000627abc74af167.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 5 22:36 user-1000@68cb813ae84d434abe4d596be08c3ae2-0000000000022781-0006288b7ef0c60c.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 10:45 user-1000@6eacf586b52643d89f3f86e64e47e6a7-000000000000498e-0006272a2da82765.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 19:21 user-1000@6eacf586b52643d89f3f86e64e47e6a7-0000000000005134-0006272ee7302306.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 26 23:10 user-1000@8155b240de694d6fbc59a68564175bcd-0000000000013f00-000627d7e1d3892c.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 20 10:50 user-1000@84f1d1a7c8ff459abe0e8a3a704b1c19-0000000000008247-0006275358fcbd3f.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 20 22:20 user-1000@84f1d1a7c8ff459abe0e8a3a704b1c19-00000000000088b8-0006275911806f5f.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 28 22:45 user-1000@85eb7fbdb0d04be08073188bffea4930-0000000000016b5a-000627f8e557f9d7.journal
-rw-r-----+ 1 root systemd-journal 6553600 Dec 4 21:46 user-1000@add9a48fc2484c70b7800e6194ef9a19-000000000002061d-0006287090f27a09.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 17 15:45 user-1000@b632697d6df94e92aeebee7ef73fbe31-0000000000003373-0006271afa97ff34.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 18 02:47 user-1000@b632697d6df94e92aeebee7ef73fbe31-000000000000382c-0006271dfec492e1.journal
-rw-r-----+ 1 root systemd-journal 6553600 Nov 19 23:08 user-1000@caf42cb256b1425d9db06ff8d610963a-0000000000006e59-0006274507049591.journal
Спасибо.
Ответ или решение
Проблема с журналом systemd: Разрешение проблемы с размером
Ваша задача заключается в том, чтобы правильно настроить journald для эффективного управления дисковым пространством, в то время как вы сталкиваетесь с проблемой превышения лимитов, установленных параметрами в файле конфигурации /etc/systemd/journald.conf
. Давайте разберем вашу конфигурацию и предложим необходимые изменения.
Существующие настройки
В текущей конфигурации вы установили:
[Journal]
SystemMaxUse=50M
SystemKeepFree=16000M
RuntimeMaxUse=40M
Эти параметры должны помочь в управлении использованием дискового пространства для журналов. Тем не менее, вы сталкиваетесь с тем, что фактическое использование превышает ожидания, с результатом:
Archived and active journals take up 117.1M in the file system.
Это говорит о том, что ваших настроек недостаточно для эффективного контроля за размером журналов.
Возможные причины проблемы
-
Неправильная интерпретация параметра SystemKeepFree:
- Параметр
SystemKeepFree
устанавливает минимальное количество свободного пространства на устройстве, которое должно оставаться доступным для других процессов. Значение16000M
может быть слишком высоким для вашего устройства, из-за чего journald не очищает свои журналы, чтобы освободить место.
- Параметр
-
Обновление конфигурации:
- Важно после изменения файла конфигурации использовать команду
systemctl restart systemd-journald
для применения новых параметров.
- Важно после изменения файла конфигурации использовать команду
-
Отсутствие автоматической очистки:
- Если настройки не соответствуют фактическому объему данных, которые записываются в журналы, это может привести к их непрерывному росту.
Рекомендованная конфигурация
Чтобы лучше контролировать размеры журналов, предлагается следующее изменение конфигурации:
[Journal]
SystemMaxUse=50M
SystemKeepFree=5M
RuntimeMaxUse=30M
Корректировки:
- Заменили
SystemKeepFree
с16000M
на5M
. Это позволит journald более агрессивно очищать старые записи, чтобы сохранить меньше свободного места. - Уменьшили
RuntimeMaxUse
до30M
, чтобы лучше справляться с временными журналами.
После применения этих изменений перезапустите службу systemd-journald
:
sudo systemctl restart systemd-journald
Поддержка и регулярные действия
Помните, что библиотека journald
не всегда может автоматически очищать старые записи, особенно если они все еще необходимы. Рассмотрите возможность включения регулярного мониторинга и настройки дополнительных уведомлений о заполняемом пространстве на диске.
- Проверка занятости: Используйте команду
journalctl --disk-usage
для периодической оценки использования пространства. - Настройка cron: Если вы всё-таки увидите, что журналы снова растут, вы можете настроить cron для автоматического вызова
journalctl --vacuum-size=50M
или--vacuum-time=1d
.
Заключение
С помощью правильной настройки конфигурации и регулярного мониторинга вы сможете надежно контролировать размер журналов systemd, избегая его ненужного переполнения. Эти изменения помогут вам оптимизировать использование дискового пространства и предотвратить возникновение ошибок, связанных с переполнением. Вы всегда можете возвратиться к архивированию или удалению старых журналов для более долгосрочной стратегии управления данными.