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.

Olga Naumova