Jak opravit úplný systemd Journal
11 min čtení - 20. května 2026

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-usageZobrazí 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 -10Filtrujte 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 --rotatePoté 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=5První 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/journalToto 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-usageKonfigurace 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.confKlíčové direktivy:
| Parametr | VPS (disk 20–40 GB) | Dedikovaný server | Co dělá |
|---|---|---|---|
| SystemMaxUse | 500 MB až 1 GB | 2 GB až 5 GB | Pevný limit na celkovou velikost deníku |
| SystemKeepFree | 1 GB | 10 % disku | Vyhrazený volný prostor pro operační systém |
| MaxRetentionSec | 7 až 14 dní | 30 až 90 dní | Automaticky smaže protokoly starší než |
| SystemMaxFileSize | 20 MB až 50 MB | 100 MB | Maximá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/journalAlternativa, 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-journaldAutomatizace ú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=500MPoté 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.targetPovolte 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 -deleteExterní 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=yesU 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-usagea identifikujte služby způsobující nadměrnou zátěž. - Okamžitě uvolněte místo pomocí
journalctl --rotatea následně--vacuum-sizenebo--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ů.

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

Máte dotazy nebo potřebujete vlastní řešení?
Flexibilní možnosti
Globální dosah
Okamžité nasazení
Flexibilní možnosti
Globální dosah
Okamžité nasazení