Kuidas parandada täielikku systemd-ajakirja
11 min lugemine - 20. mai 2026

Diagnoosige ja parandage täis systemd-ajakirja vaakumkäskude, journald.conf-i suuruse piirangute, automaatsete puhastusajamite ja logide edastamise abil.
Kuidas parandada täis systemd-päevikut
Systemd-päevik salvestab kõik teie serveri poolt loodud logisõnumid ning VPS-il, millel on väike juurpartitsioon, võib see vaikselt ära tarbida kogu teie vaba kettaruumi. Kui see juhtub, ei õnnestu teenuseid käivitada, kirjutamine seiskub ja te kaotate just need diagnostilised andmed, mida vajate, et välja selgitada, mis valesti läks. Käesolev juhend käsitleb, kuidas probleemi diagnoosida, vabastada kohe ruumi ja konfigureerida journald nii, et see enam ei korduks.
Probleemi diagnoosimine
Alustage sellest, et kontrollite, kui palju ruumi ajakiri kasutab:
journalctl --disk-usageSee näitab kõigi aktiivse ja arhiveeritud logifailide kogumahtu. Võrdle seda oma vaba kettaruumiga df -h. 20 GB juurpartitsioonil moodustab isegi 2 GB logifaile üle 10% kogu kettaruumist, mis on piisav probleemide tekitamiseks.
Seejärel selgitage välja, millised teenused tekitavad kõige rohkem müra. See üherealine käsk järjestab viimase 24 tunni jooksul 10 kõige aktiivsemad logifailide allikat:
journalctl --since "24 hours ago" | awk '{print $5}' | cut -d'[' -f1 | sort | uniq -c | sort -rn | head -10Filtreerige vead spetsiaalselt journalctl -p err -b , et näha, kas mõni teenus on takerdunud krahhi-tsüklisse ja üleujutab ajakirja. Samuti saate kontrollida, kas journald piirab mõne teenuse kiirust:
journalctl -u systemd-journald | grep -i "suppressed"Sõnumite summutamine tähendab, et teenus ületas 30 sekundi jooksul vaikimisi määratud 10 000 kande piirmäära. See ongi süüdlane.
Mõned asjad on VPS-instantsidel eriti levinud. Kui Storage=auto on määratud ja /var/log/journal/ olemas, kasutab journald püsivat salvestusruumi, mille vaikimisi piirang on umbes 4 GB. Väikesel juurpartitsioonil täitub see kiiresti. Ebaõnnestunud väljalülitamine võib samuti jätta rikutud ajakirjafailid, millel on .journal~ . Need failid ei roteeru normaalselt ja võtavad jätkuvalt ruumi.
Logide ohutu kustutamine
Enne midagi eemaldamist vahetage aktiivset logifaili, et säilitada praegused logid:
journalctl --rotateSeejärel kustutage arhiveeritud logid. Saate valida vanuse, suuruse või failide arvu järgi:
sudo journalctl --vacuum-time=1d
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-files=5Esimene valik kustutab logid, mis on vanemad kui 24 tundi. Teine valik vähendab ajakirja kogumahutavust 100 MB-ni. Kolmas valik säilitab ainult viis viimast arhiveeritud faili. Valige oma olukorrale sobiv variant.
Kui ketas on täiesti täis ja journalctl-käskudele ei reageerita, võib olla vaja logifailid käsitsi kustutada:
sudo rm -rf /var/log/journal/*
sudo systemd-tmpfiles --create --prefix /var/log/journalSee on viimane abinõu. See kustutab kõik salvestatud logid ja loob kataloogi uuesti õigete õigustega. Pärast puhastamist taaskäivitage daemon ja kontrollige:
sudo systemctl restart systemd-journald
journalctl --disk-usageJournaldi suuruspiirangute konfigureerimine
Journaldi vaikimisi seaded on liiga avarad. VPS-i puhul on need liiga avarad. Muuda konfiguratsiooni, et määrata logide salvestamisele kindlad piirangud. Loo ülekirjutamisfail, selle asemel et muuta peamist konfiguratsiooni otse, nii et su muudatused jäävad alles ka pärast paketi uuendamist:
sudo mkdir -p /etc/systemd/journald.conf.d/
sudo nano /etc/systemd/journald.conf.d/size-limits.confPeamised direktiivid:
| Parameeter | VPS (20–40 GB kettaruum) | Pühendatud server | Mida see teeb |
|---|---|---|---|
| SystemMaxUse | 500M kuni 1G | 2G kuni 5G | Päeviku kogumahu kindel piir |
| SystemKeepFree | 1 G | 10% kettast | Operatsioonisüsteemi jaoks reserveeritud vaba ruum |
| MaxRetentionSec | 7–14 päeva | 30–90 päeva | Kustutab automaatselt sellest vanemad logid |
| SystemMaxFileSize | 20M kuni 50M | 100M | Maksimaalne suurus ühe logifaili kohta |
Mõlema seadistamine SystemMaxUse ja SystemKeepFree annab teile kahekordse kindluse: logid on piiratud kindla suurusega ja süsteemil on alati hingamisruumi, sõltumata sellest, mis muud veel kettal on.
Püsiv vs. muutuv mälu
Direktiiv Storage= direktiiv määrab, kuhu logid salvestatakse. Määrake Storage=persistent logide kirjutamiseks /var/log/journal/ kettale. See on soovitatav tootmisserverite puhul, kuna logid säilivad taaskäivituste järel ja võimaldavad uurida krahhe tagantjärele. Kui kataloog puudub, looge see:
sudo mkdir -p /var/log/journalAlternatiiv, Storage=volatile, hoiab logid RAM-is /run/log/journal/. Logid kaovad taaskäivitamisel. See on mõistlik ajutiste konteinerite või serverite puhul, mis edastavad kõik logid välisesse süsteemi.
Kompressiooni keelamine suure liiklusega serverites
Journald pakub vaikimisi alla 512 baiti suuruseid andmeobjekte. Suure logide läbilaskevõimega serveritel tekitab see CPU-le lisakoormust. Määrake Compress=no , kui edastate logisid väliselt ja ei pea kohalikku salvestusruumi minimeerima. Määrake ForwardToConsole=no tootmiskeskkonnas. Konsooli edastamine on sünkroonne ja takerdunud virtuaalne jadakonsool võib journald-daemoni täielikult blokeerida.
Pärast iga konfiguratsiooni muutmist taaskäivitage teenus:
sudo systemctl restart systemd-journaldLogide haldamise automatiseerimine
Käsitsi puhastamine ei ole mastaapselt teostatav. Looge systemd-ajastin, et logisid graafiku järgi puhastada. Seadistage teenuseüksus aadressil /etc/systemd/system/journal-vacuum.service:
[Unit]
Description=Vacuum old journal logs
[Service]
Type=oneshot
ExecStart=/usr/bin/journalctl --vacuum-time=7d --vacuum-size=500MSeejärel looge vastav ajastin /etc/systemd/system/journal-vacuum.timer:
[Unit]
Description=Weekly journal vacuum
[Timer]
OnCalendar=Sun 02:00
Persistent=true
[Install]
WantedBy=timers.targetLülitage see sisse sudo systemctl enable --now journal-vacuum.timer. Ajastin töötab igal pühapäeval kell 2 öösel ja rakendab ühe läbimisega nii ajapõhist kui ka mahupõhist säilitamist.
Üks asi, mida ajastin ei suuda tuvastada, on rikutud ajakirjafailid. Ebaõige väljalülitamise järel paneb journald kahjustatud failid karantiini, lisades failinimele ~ failinimele. Need .journal~ failid arvestatakse endiselt kettaruumi kasutamisel, kuid neid ei puhastata automaatselt. Kontrollige regulaarselt vanu faile ja eemaldage need:
find /var/log/journal/ -name "*.journal~" -mtime +30 -deleteLogide edastamine väljapoole
Serverite puhul, kus on vaja pikaajalist säilitamist ilma kohaliku salvestusruumi suurendamiseta, edastage logid tsentraliseeritud süsteemi. Lihtsaim lähenemine on syslogi edastamise lubamine journald.conf:
ForwardToSyslog=yesStruktureeritud logide puhul, millel on täielikud metaandmed (PID, UID, üksuste nimed), kasutage systemd-journal-remote JSON-vormingus kirjeid logihaldusplatvormile edastamiseks. Välise logimäluga kaitstakse ka teie auditeerimisjälge, kui kohalik kett rikneb või serveri turvalisus ohustatakse.
Kokkuvõte
Täielikku systemd-päevikut on lihtne parandada ja seda on kerge ära hoida. Olulised sammud:
- Kontrollige kasutust
journalctl --disk-usageja tuvasta müra tekitavad teenused. - Vabasta ruum kohe käsuga
journalctl --rotateja seejärel--vacuum-sizevõi--vacuum-time. - Määrake selged suuruspiirangud journald.conf ümberkirjutamisfailis.
- Automatiseerige puhastamine systemd-ajastiga.
- Edastage logid väliselt pikaajaliseks säilitamiseks.
FDC VPS- ja pühendatud serverite paketid pakuvad tootmislogide töökoormuste jaoks vajalikku kettaseadme sisend-väljundit ja salvestusruumi.

Zombiprotsessid Linuxis: Leia, eemalda, takista
Õppige, kuidas tuvastada, eemaldada ja vältida zombiprotsesse Linuxis. Käsklused, koodiparandused ja seire näpunäited serverite administraatoritele.
15 min lugemine - 19. mai 2026
Linuxi serveri karastamise kontrollnimekiri
15 min lugemine - 8. mai 2026

Kas teil on küsimusi või vajate kohandatud lahendust?
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt