Jak opravit úplný systemd Journal

11 min čtení - 20. května 2026

hero section cover
Obsah
  • Jak opravit plný systémový deník
  • Diagnostika problému
  • Bezpečné vymazání protokolů
  • Konfigurace limitů velikosti Journald
  • Automatizace údržby protokolů
  • Závěr
Sdílet

Diagnostika a oprava plného žurnálu systemd pomocí příkazů vacuum, omezení velikosti souboru journald.conf, automatických časovačů čištění a předávání žurnálu.

Jak opravit plný systémový deník

Deník systemd ukládá všechny logové zprávy, které váš server generuje, a na VPS s malým rootovým oddílem může tiše vyčerpat váš dostupný diskový prostor. Když k tomu dojde, služby se nespustí, zápis se zastaví a vy přijdete o diagnostické údaje, které potřebujete k zjištění, co se pokazilo. Tento průvodce popisuje, jak diagnostikovat problém, okamžitě uvolnit místo a nakonfigurovat journald tak, aby se to již neopakovalo.


 

Diagnostika problému

Začněte kontrolou, kolik místa deník zabírá:

journalctl --disk-usage

Zobrazí se celková velikost všech aktivních a archivovaných souborů deníku. Porovnejte ji s dostupným místem na disku pomocí df -h. Na kořenovém oddílu o velikosti 20 GB představuje i 2 GB protokolů více než 10 % celkové kapacity disku, což stačí k tomu, aby to způsobilo problémy.

Dále zjistěte, které služby generují nejvíce hlášení. Tento jednořádkový příkaz seřadí 10 nejčastějších zdrojů protokolů za posledních 24 hodin:

journalctl --since "24 hours ago" | awk '{print $5}' | cut -d'[' -f1 | sort | uniq -c | sort -rn | head -10

Filtrujte chyby konkrétně pomocí journalctl -p err -b , abyste zjistili, zda se jedna služba nezasekla v smyčce selhání a nezaplavuje deník. Můžete také zkontrolovat, zda journald omezuje rychlost nějaké služby:

journalctl -u systemd-journald | grep -i "suppressed"

Potlačené zprávy znamenají, že služba překročila výchozí limit 10 000 záznamů za 30 sekund. To je váš viník.

Na instancích VPS se vyskytuje několik věcí obzvláště často. Pokud Storage=auto je nastaveno a /var/log/journal/ existuje, journald používá trvalé úložiště s výchozím limitem přibližně 4 GB. Na malém kořenovém oddílu se to rychle zaplní. Nečisté vypnutí může také zanechat poškozené soubory deníku s příponou .journal~ . Tyto soubory se normálně nerotují a nadále zabírají místo.

Bezpečné vymazání protokolů

Před odstraněním čehokoli otočte aktivní soubor deníku, aby byly zachovány aktuální protokoly:

journalctl --rotate

Poté vymažte archivované protokoly. Můžete se zaměřit na stáří, velikost nebo počet souborů:

sudo journalctl --vacuum-time=1d
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-files=5

První příkaz odstraní protokoly starší než 24 hodin. Druhý příkaz zmenší celkovou velikost deníku na 100 MB. Třetí příkaz ponechá pouze pět nejnovějších archivovaných souborů. Vyberte si ten, který vyhovuje vaší situaci.

Pokud je disk zcela plný a příkazy journalctl nereagují, možná budete muset soubory deníku smazat ručně:

sudo rm -rf /var/log/journal/*
sudo systemd-tmpfiles --create --prefix /var/log/journal

Toto je krajní řešení. Vymaže všechny uložené protokoly a znovu vytvoří adresář se správnými oprávněními. Po jakémkoli vyčištění restartujte démona a ověřte:

sudo systemctl restart systemd-journald
journalctl --disk-usage

Konfigurace limitů velikosti Journald

Výchozí nastavení journald je velkorysé. Na VPS je až příliš velkorysé. Upravte konfiguraci tak, aby byly nastaveny pevné limity pro ukládání protokolů. Vytvořte přepisovací soubor namísto přímé úpravy hlavní konfigurace, aby vaše změny zůstaly zachovány i po aktualizacích balíčků:

sudo mkdir -p /etc/systemd/journald.conf.d/
sudo nano /etc/systemd/journald.conf.d/size-limits.conf

Klíčové direktivy:

ParametrVPS (disk 20–40 GB)Dedikovaný serverCo dělá
SystemMaxUse500 MB až 1 GB2 GB až 5 GBPevný limit na celkovou velikost deníku
SystemKeepFree1 GB10 % diskuVyhrazený volný prostor pro operační systém
MaxRetentionSec7 až 14 dní30 až 90 dníAutomaticky smaže protokoly starší než
SystemMaxFileSize20 MB až 50 MB100 MBMaximální velikost jednoho souboru deníku

Nastavení obou SystemMaxUse i SystemKeepFree získáte dvojitou pojistku: logy jsou omezeny na pevnou velikost a systém má vždy dostatek prostoru bez ohledu na to, co dalšího se na disku nachází.

Trvalé vs. dočasné úložiště

Direktiva Storage= určuje, kam se logy ukládají. Nastavením Storage=persistent na zápis protokolů na /var/log/journal/ na disk. To je to, co chcete pro produkční servery, protože protokoly přežijí restart a můžete vyšetřovat pády až po události. Pokud adresář neexistuje, vytvořte jej:

sudo mkdir -p /var/log/journal

Alternativa, Storage=volatileuchovává protokoly v paměti RAM v /run/log/journal/. Protokoly zmizí při restartu. To dává smysl pro dočasné kontejnery nebo servery, které všechny protokoly přeposílají do externího systému.

Zakázání komprese na serverech s vysokým provozem

Journald ve výchozím nastavení komprimuje datové objekty větší než 512 bajtů. Na serverech zpracovávajících velký objem protokolů to zvyšuje zatížení procesoru. Nastavte Compress=no , pokud přeposíláte protokoly externě a nepotřebujete minimalizovat místní úložiště. Nastavte také ForwardToConsole=no v produkčním prostředí. Přesměrování konzole je synchronní a zablokovaná virtuální sériová konzole může démon journald zcela zablokovat.

Po jakékoli změně konfigurace restartujte službu:

sudo systemctl restart systemd-journald

Automatizace údržby protokolů

Ruční čištění není škálovatelné. Vytvořte časovač systemd pro pravidelné mazání protokolů. Nastavte jednotku služby v /etc/systemd/system/journal-vacuum.service:

[Unit]
Description=Vacuum old journal logs
 
[Service]
Type=oneshot
ExecStart=/usr/bin/journalctl --vacuum-time=7d --vacuum-size=500M

Poté vytvořte odpovídající časovač v /etc/systemd/system/journal-vacuum.timer:

[Unit]
Description=Weekly journal vacuum
 
[Timer]
OnCalendar=Sun 02:00
Persistent=true
 
[Install]
WantedBy=timers.target

Povolte jej pomocí sudo systemctl enable --now journal-vacuum.timer. Časovač se spouští každou neděli ve 2:00 a v jednom průchodu aplikuje uchovávání založené na čase i velikosti.

Jedna věc, kterou časovač nezachytí: poškozené soubory deníku. Po nečistém vypnutí journald umístí poškozené soubory do karantény připojením ~ k názvu souboru. Tyto .journal~ soubory se stále započítávají do využití disku, ale nebudou automaticky vyčištěny. Pravidelně kontrolujte a odstraňujte staré soubory:

find /var/log/journal/ -name "*.journal~" -mtime +30 -delete

Externí přesměrování protokolů

U serverů, kde potřebujete dlouhodobé uchovávání bez zvětšování lokálního úložiště, přesměrujte protokoly do centralizovaného systému. Nejjednodušším přístupem je povolení přesměrování syslogu v journald.conf:

ForwardToSyslog=yes

U strukturovaných protokolů s úplnými metadaty (PID, UID, názvy jednotek) použijte systemd-journal-remote k odesílání záznamů ve formátu JSON na platformu pro správu protokolů. Externí úložiště protokolů také chrání váš audit trail v případě selhání lokálního disku nebo napadení serveru.

Závěr

Úplný systémový deník systemd lze snadno opravit a snadno mu lze předejít. Klíčové kroky:

  • Zkontrolujte využití pomocí journalctl --disk-usage a identifikujte služby způsobující nadměrnou zátěž.
  • Okamžitě uvolněte místo pomocí journalctl --rotate a následně --vacuum-size nebo --vacuum-time.
  • Nastavte explicitní limity velikosti v přepisovacím souboru journald.conf.
  • Automatizujte čištění pomocí časovače systemd.
  • Přeneste protokoly externě pro dlouhodobé uchovávání.

Plány VPS a dedikovaných serverů společnosti FDC poskytují diskové I/O a úložiště potřebné pro produkční zátěž protokolů.

Blog

Tento týden byly představeny

Další články
Zombie procesy v Linuxu: Zkušební procesy: Najít, odstranit, zabránit

Zombie procesy v Linuxu: Zkušební procesy: Najít, odstranit, zabránit

Naučte se, jak v systému Linux identifikovat zombie procesy, odstraňovat je a předcházet jim. Příkazy, opravy kódu a tipy pro monitorování pro správce serverů.

15 min čtení - 19. května 2026

Kontrolní seznam zabezpečení linuxových serverů

15 min čtení - 8. května 2026

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení