LINUX.ORG.RU
ФорумAdmin

Почему journalctl потребляет так много места

 ,


0

2

Хочу посмотреть сколько места занимает Systemd лог:

$ sudo journalctl --disk-usage
Archived and active journals take up 9.7G in the file system.

Дамплю все логи в файл и смотрю его размер:

sudo journalctl > logs.txt
ls -lh logs.txt
-rw-rw-r--. 1 user user 679M Dec  4 16:34 logs.txt

Почему так?

Ответ на: комментарий от intelfx

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

Goganchic ★★
() автор топика
Ответ на: комментарий от amd_amd

И что мне это даст? Вместо 30 Гб логи за 3 месяца начнут занимать 2? Думаю что нет. Думаю, что эта команда просто удалит всё старше 3 месяцев, при этом логи за 3 месяца как занимали 30 Гб, так и будут занимать.

Goganchic ★★
() автор топика
Ответ на: комментарий от MoldAndLimeHoney
$ sudo journalctl --disk-usage 

Archived and active journals take up 3.1G in the file system.

$ sudo nvim /etc/systemd/journald.conf
SystemMaxUse=200M
RuntimeMaxUse=10M

$ sudo systemctl restart systemd-journald

$ sudo journalctl --disk-usage 
Archived and active journals take up 240.0M in the file system.

Это Ubuntu VPS, на десктопной Федоре было занято 600+Mb. У меня только один вопрос, почему дистростроители не указали какие-то разумные ограничения на ротацию логов ни в Федоре, ни в Убунте. Выглядит как бомба замедленного действия.

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

SystemMaxUse=200M RuntimeMaxUse=10M

Второй параметр это рантайм, когда логи в памяти хранятся. Для них 10 мегабайт мало. Добавь Storage=persistent, чтобы логи сохранялись между перезагрузками, помогает ошибки искать и сделай гиг логов, рантайм не нужен, можно ограничить уровень типа warning чтобы отладочным мусором логи не забивались

У меня только один вопрос, почему дистростроители не указали какие-то разумные ограничения на ротацию логов ни в Федоре, ни в Убунте.

По умолчанию они вроде в оперативе хранятся, то админы твоей впсины скорее всего так криво настроили систему

rtxtxtrx
()
Ответ на: комментарий от rtxtxtrx

Добавь Storage=persistent, чтобы логи сохранялись между перезагрузками

По умолчанию стоит auto.

Defaults to «auto» in the default journal namespace, and «persistent» in all others.

По умолчанию они вроде в оперативе хранятся, то админы твоей впсины скорее всего так криво настроили систему

По умолчанию эти поля просто пустые, полагаю оно будет накапливаться до бесконечности, как у OP. Это довольно странно.

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

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

On Ubuntu 16.04, /var/log/journal does not exist by default.

 "auto" behaves like "persistent" if the
           /var/log/journal directory exists, and "volatile" otherwise
rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 2)
Ответ на: комментарий от rtxtxtrx

Прежде всего Убунта – это один из самых популярных серверных дистрибутивов (если не самый популярный), а уже потом все остальное. Но дело даже не в этом. В Федоре и даже в Oracle Linux 9 (т.е. и в швятом RHEL, который, наверняка, использовал бы сам Иисус) так же стоит auto и пустые поля на *MaxUse. Полагаю это просто дефолты ванильного systemd/journald. Такшта..

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

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

rtxtxtrx
()

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

Khnazile ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

У меня только один вопрос, почему дистростроители не указали какие-то разумные ограничения на ротацию логов ни в Федоре, ни в Убунте.

Потому что они из коробки разумные вполне.

           SystemMaxUse= and RuntimeMaxUse= control how much disk space
           the journal may use up at most.  SystemKeepFree= and
           RuntimeKeepFree= control how much disk space systemd-journald
           shall leave free for other uses.  systemd-journald will
           respect both limits and use the smaller of the two values.

           The first pair defaults to 10% and the second to 15% of the
           size of the respective file system, but each value is capped
           to 4G. If the file system is nearly full and either
           SystemKeepFree= or RuntimeKeepFree= are violated when
           systemd-journald is started, the limit will be raised to the
           percentage that is actually free. This means that if there
           was enough free space before and journal files were created,
           and subsequently something else causes the file system to
           fill up, journald will stop using more space, but it will not
           be removing existing files to reduce the footprint again,
           either. Also note that only archived files are deleted to
           reduce the space occupied by journal files. This means that,
           in effect, there might still be more space used than
           SystemMaxUse= or RuntimeMaxUse= limit after a vacuuming
           operation is complete.
anonymous
()