Linux servera logi: journalctl, /var/log, tail -f

26 May 2026 Autors: Olga Naumova

Servera logus skata divos veidos: ar journalctl (systemd žurnāls, kurā raksta lielākā daļa servisu) un caur failiem mapē /var/log. Dzīvo plūsmu ērti noķert ar komandu tail -f, bet kļūdas meklēt ar grep. Zemāk — ikdienas darba komandas.

Kur atrodas logi

  • journald — centralizēts systemd žurnāls, pieejams ar journalctl.
  • /var/log/ — atsevišķu servisu teksta faili (nginx, mysql, pasts).
  • dmesg — kodola ziņojumi.

journalctl: galvenais rīks

Parādīt visu žurnālu (no beigām, ar ritināšanu):

journalctl -e

Dzīvā plūsma reāllaikā

journalctl -f

Analogs komandai tail -f, bet visam systemd žurnālam. Pārtraukt — Ctrl+C.

Konkrēta servisa logi

journalctl -u nginx
journalctl -u ssh -f

Filtrs pēc laika

journalctl --since "2026-05-26 09:00" --until "2026-05-26 10:00"
journalctl --since "1 hour ago"
journalctl --since today

Tikai kļūdas

Pēc prioritātes līmeņa (0 — emergency, 3 — error):

journalctl -p err -b

-b ierobežo izvadi ar pašreizējo sistēmas ielādi. Iepriekšējās ielādes logi:

journalctl -b -1

Kodola logi

journalctl -k

Pēdējās N rindas

journalctl -u nginx -n 50

Faili mapē /var/log

Noderīgi faili (atkarīgs no distributīva):

Fails Ko satur
/var/log/syslog Vispārīgi sistēmas notikumi (Debian/Ubuntu)
/var/log/auth.log Autentifikācija, SSH pieteikšanās
/var/log/nginx/error.log Tīmekļa servera kļūdas
/var/log/nginx/access.log Pieprasījumi vietnei
/var/log/mysql/error.log MySQL/MariaDB kļūdas
/var/log/dmesg Kodola ziņojumi startā

tail, head, less

Faila dzīvā skatīšana:

tail -f /var/log/nginx/access.log

Pēdējās 100 rindas:

tail -n 100 /var/log/nginx/error.log

Pa lappusēm ar meklēšanu (nospiediet /, lai meklētu iekšpusē):

less /var/log/syslog

Sekot uzreiz vairākiem failiem:

tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Meklēšana žurnālos ar grep

Atrast kļūdas:

grep -i "error" /var/log/nginx/error.log

Parādīt kontekstu (3 rindas pirms un pēc):

grep -i -C 3 "segfault" /var/log/syslog

Saskaitīt neveiksmīgas SSH pieteikšanās:

grep "Failed password" /var/log/auth.log | wc -l

Dzīvā plūsma ar filtru:

tail -f /var/log/nginx/access.log | grep " 500 "

Tīmekļa žurnālu analīze

Populārākās IP adreses pēc pieprasījumu skaita:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Populārākie pieprasītie URL:

awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Žurnālu izmērs un rotācija

Systemd žurnāla izmērs:

journalctl --disk-usage

Notīrīt vecos ierakstus, atstājot pēdējos 200 MB vai 7 dienas:

journalctl --vacuum-size=200M
journalctl --vacuum-time=7d

Teksta žurnāli tiek rotēti ar logrotate — iestatījumi mapē /etc/logrotate.d/.

Pastāvīga žurnāla glabāšana

Pēc noklusējuma dažās sistēmās journald glabā logus tikai atmiņā un zaudē tos pārstartēšanas laikā. Ieslēdziet pastāvīgu glabāšanu:

mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

Tagad journalctl -b -1 parādīs iepriekšējo ielāžu logus — tas ir neaizstājami, analizējot pēkšņas pārstartēšanās.

Filtrēšana pēc vairākiem nosacījumiem

Journalctl kombinē filtrus. Konkrēta servisa kļūdas pēdējā stundā:

journalctl -u nginx -p err --since "1 hour ago"

Konkrēta procesa (PID) logi:

journalctl _PID=1234

Pēc izpildāmā faila:

journalctl /usr/sbin/sshd

Izvades formāts analīzei

Nodošanai skriptiem ērts ir JSON:

journalctl -u nginx -o json-pretty --since today

Kompakta izvade bez pārnesumiem un ar prioritātēm:

journalctl -o short-precise -p warning

Kļūdu monitorings reāllaikā

Salieciet «trauksmes paneli» — dzīvu plūsmu tikai ar kļūdām no visiem servisiem:

journalctl -f -p err

Atstājiet komandu atsevišķā tmux vai screen sesijā, lai uzreiz redzētu problēmas, tiklīdz tās parādās. Tā ir vienkārša paneļu alternatīva, kad ātri jāsaprot servera uzvedība.

Biežāk uzdotie jautājumi

Kāpēc /var/log/auth.log ir tukšs? Sistēmās ar journald logi var netikt dublēti failos. Skatiet journalctl -u ssh.

Kā apskatīt nokritušā servisa logus? journalctl -u servisa_nosaukums -n 100 --no-pager — parādīs pēdējās rindas pirms krišanas.

Logi aizņem daudz vietas — ko darīt? Ierobežojiet žurnālu ar journalctl --vacuum-size un norādiet SystemMaxUse failā /etc/systemd/journald.conf.

Kā eksportēt logus failā? journalctl -u nginx --since today > nginx-today.log.

Kāda ir atšķirība starp tail -f un journalctl -f? tail -f seko vienam failam, journalctl -f — visam systemd žurnālam ar filtriem pēc servisa un prioritātes.


Pārliecinošs darbs ar žurnāliem vienkāršo ekspluatāciju. Izvietojiet projektu uz VPS nomas vai VPS drošībai un VPN. Monitoringu un incidentu analīzi uzņemsies Serveru administrēšana.

Olga Naumova