Linux serverio žurnalai: journalctl, /var/log, tail -f 2026
Serverio žurnalai peržiūrimi dviem būdais: per journalctl (systemd žurnalas, į kurį rašo dauguma tarnybų) ir per failus kataloge /var/log. Gyvą srautą patogu gaudyti komanda tail -f, o klaidų ieškoti su grep. Žemiau — kasdien reikalingos komandos.
Kur laikomi žurnalai
- journald — centralizuotas systemd žurnalas, pasiekiamas per
journalctl. - /var/log/ — atskirų tarnybų tekstiniai failai (nginx, mysql, paštas).
- dmesg — branduolio pranešimai.
journalctl: pagrindinis įrankis
Parodyti visą žurnalą (nuo galo, su slinkimu):
journalctl -e
Gyvas srautas realiuoju laiku
journalctl -f
Analogas tail -f, tik visam systemd žurnalui. Nutraukti — Ctrl+C.
Konkrečios tarnybos žurnalai
journalctl -u nginx
journalctl -u ssh -f
Filtras pagal laiką
journalctl --since "2026-05-26 09:00" --until "2026-05-26 10:00"
journalctl --since "1 hour ago"
journalctl --since today
Tik klaidos
Pagal prioriteto lygį (0 — emergency, 3 — error):
journalctl -p err -b
-b apriboja išvestį dabartiniu sistemos paleidimu. Ankstesnio paleidimo žurnalai:
journalctl -b -1
Branduolio žurnalai
journalctl -k
Paskutinės N eilučių
journalctl -u nginx -n 50
Failai kataloge /var/log
Naudingi failai (priklauso nuo distributyvo):
| Failas | Ką kaupia |
|---|---|
/var/log/syslog |
Bendri sistemos įvykiai (Debian, Ubuntu) |
/var/log/auth.log |
Autentifikacija, SSH prisijungimai |
/var/log/nginx/error.log |
Žiniatinklio serverio klaidos |
/var/log/nginx/access.log |
Užklausos svetainei |
/var/log/mysql/error.log |
MySQL ir MariaDB klaidos |
/var/log/dmesg |
Branduolio pranešimai paleidimo metu |
tail, head, less
Gyva failo peržiūra:
tail -f /var/log/nginx/access.log
Paskutinės 100 eilučių:
tail -n 100 /var/log/nginx/error.log
Puslapiais su paieška (paspauskite /, kad ieškotumėte viduje):
less /var/log/syslog
Stebėti kelis failus iš karto:
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
Paieška žurnaluose su grep
Rasti klaidas:
grep -i "error" /var/log/nginx/error.log
Parodyti kontekstą (3 eilutės prieš ir po):
grep -i -C 3 "segfault" /var/log/syslog
Suskaičiuoti nesėkmingus SSH prisijungimus:
grep "Failed password" /var/log/auth.log | wc -l
Gyvas srautas su filtru:
tail -f /var/log/nginx/access.log | grep " 500 "
Žiniatinklio žurnalų analizė
Daugiausiai užklausų siuntę IP adresai:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Dažniausiai užklausiami URL:
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Žurnalų dydis ir rotacija
systemd žurnalo dydis:
journalctl --disk-usage
Išvalyti senus įrašus, paliekant paskutinius 200 MB arba 7 dienas:
journalctl --vacuum-size=200M
journalctl --vacuum-time=7d
Tekstiniai žurnalai rotuojami per logrotate — nustatymai yra kataloge /etc/logrotate.d/.
Nuolatinis žurnalo saugojimas
Pagal nutylėjimą kai kuriose sistemose journald laiko žurnalus tik atmintyje ir praranda juos perkrovus. Įjunkite nuolatinį saugojimą:
mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald
Dabar journalctl -b -1 parodys ankstesnių paleidimų žurnalus — tai nepakeičiama nagrinėjant netikėtus perkrovimus.
Filtravimas pagal kelias sąlygas
journalctl derina filtrus. Konkrečios tarnybos klaidos per paskutinę valandą:
journalctl -u nginx -p err --since "1 hour ago"
Konkretaus proceso (PID) žurnalai:
journalctl _PID=1234
Pagal vykdomąjį failą:
journalctl /usr/sbin/sshd
Išvesties formatas analizei
Perdavimui į skriptus patogus JSON:
journalctl -u nginx -o json-pretty --since today
Kompaktiška išvestis be perkėlimų ir su prioritetais:
journalctl -o short-precise -p warning
Klaidų stebėjimas realiuoju laiku
Susikurkite „pavojaus skydelį“ — gyvą srautą tik su visų tarnybų klaidomis:
journalctl -f -p err
Palikite komandą atskirame tmux arba screen seanse, kad problemas matytumėte iš karto joms atsiradus. Tai paprastas skydelių pakaitalas, kai reikia greitai suprasti serverio elgseną.
Dažni klausimai
Kodėl /var/log/auth.log tuščias?
Sistemose su journald žurnalai gali būti nedubliuojami į failus. Žiūrėkite journalctl -u ssh.
Kaip peržiūrėti nulūžusios tarnybos žurnalus?
journalctl -u tarnybos_pavadinimas -n 100 --no-pager — parodys paskutines eilutes prieš lūžį.
Žurnalai užima daug vietos — ką daryti?
Apribokite žurnalą su journalctl --vacuum-size ir nustatykite SystemMaxUse faile /etc/systemd/journald.conf.
Kaip eksportuoti žurnalus į failą?
journalctl -u nginx --since today > nginx-today.log.
Kuo skiriasi tail -f ir journalctl -f?
tail -f stebi vieną failą, journalctl -f — visą systemd žurnalą su filtrais pagal tarnybą ir prioritetą.
Užtikrintas darbas su žurnalais palengvina eksploataciją. Talpinkite projektą VPS nuomoje arba VPS saugumui ir VPN. Stebėseną ir incidentų analizę perims Serverių administravimas.