# Твърде големи логове на journald: проверка и ограничаване на размера на журнала

На много Linux сървъри журналът на systemd бавно израства до най-големия обект в /var. Можете да видите размера му, да го почистите веднъж и да зададете ограничение, за да остане малък - без да пипате други лог файлове.

## 1. Вижте колко място заема журналът

Изпълнете journalctl --disk-usage. Командата показва общия размер на архивираните и активните файлове на журнала. Обикновено те се намират в /var/log/journal (постоянен) или /run/log/journal (пази се само в паметта).
Ако директорията /var/log/journal не съществува, системата ви може да пази журнала само в паметта и размерът, който виждате, е ограничен от RAM, а не от диска.

## 2. Почистете го веднъж

За да задържите журнала до определен размер или под него, изпълнете sudo journalctl --vacuum-size=500M. За да запазите само скорошните записи, изпълнете sudo journalctl --vacuum-time=14d. И двете команди премахват стари архивирани файлове на журнала; логовете в тях не могат да бъдат възстановени след това.
Изпълнете journalctl --disk-usage отново, за да потвърдите. Почистването премахва цели архивирани файлове, така че резултатът може да е малко над или под целта.

## 3. Задайте постоянно ограничение

Отворете /etc/systemd/journald.conf (или създайте drop-in файл в /etc/systemd/journald.conf.d/) и задайте SystemMaxUse=500M в секцията [Journal]. Ако искате да запазите и малко свободно място, друга възможност е SystemKeepFree=1G. SystemMaxUse ограничава постоянния журнал; RuntimeMaxUse прави същото за журнала в паметта.
Приложете промяната със sudo systemctl restart systemd-journald, след което след известно време проверете journalctl --disk-usage.

## 4. Решете какво трябва да запазите

По-малкият журнал означава по-кратка история за отстраняване на проблеми. Ако ви трябва по-дълга история на една услуга, изпращайте логовете ѝ на друго място, вместо да пазите всичко на сървъра.
Вижте коя услуга пише най-много: journalctl -b -p warning --no-pager | tail показва скорошните предупреждения, а услуга, която записва хиляди редове в минута, си струва да бъде поправена при източника.

## FAQ

**Безопасно ли е да изпълня journalctl --vacuum-size?**

Да, за самата система: командата изтрива само стари архивирани файлове на журнала. Губите тази история на логовете, затова първо се уверете, че не ви трябва за разследване.

**Трябва ли да рестартирам нещо след редакция на journald.conf?**

Рестартирайте systemd-journald (sudo systemctl restart systemd-journald). Ограничението важи от този момент, а по-старите файлове се изчистват при ротацията на журнала.

**Защо липсва /var/log/journal?**

Постоянното съхранение е изключено или е зададено на auto без директорията. Тогава журналът се намира в /run/log/journal в паметта и се губи при рестарт. Създайте /var/log/journal и рестартирайте journald само ако искате постоянно съхранение.

Source: https://raincleaner.eu/bg/guides/journald-logs-too-big-limit-journal-size