Upravljanje logovima u Linuxu: naredbe journalctl | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

Upravljanje logovima u Linuxu: korištenje naredbi journalctl za systemd logove

Razina: Početnik
Procijenjeno vrijeme: ~20 minuta
Cilj: Naučiti kako pretraživati, filtrirati i upravljati sistemskim zapisnicima i zapisnicima usluga te pomoću Linux zapisnika za otklanjanje poteškoća riješiti probleme i održati dostupnost poslužitelja.

Uvod

Pouzdano upravljanje zapisnicima u Linuxu ključno je za održavanje dostupnosti poslužitelja i provođenje dijagnostike Linux poslužitelja. Pri upravljanju web poslužiteljima potrebno je brzo analizirati sistemske zapisnike pomoću journalctl kako biste pronašli uzrok problema. Systemd (init sustav i upravitelj usluga većine modernih Linux distribucija) prikuplja sistemske zapisnike (opće zapise o sistemskim operacijama i događajima na razini cijelog sustava). Pojedinačni zapisnik (log) (zapis događaja koji se odvijaju unutar operacijskog sustava ili softverske aplikacije) prikuplja Systemd-journald (sistemska usluga koja prikuplja i pohranjuje podatke zapisnika) i pohranjuje ga u Journal (binarne podatke zapisnika koje generira i kojima upravlja systemd-journald). Za pregled tih podataka koristimo Journalctl (alat naredbenog retka za pretraživanje i prikaz systemd zapisnika). Ovaj vodič usredotočen je na uporabu naredbi journalctl za pretraživanje, filtriranje i upravljanje systemd zapisnicima u journalctl. Na kraju ćete se sigurno snalaziti u naredbenom retku i učinkovito koristiti Linux zapisnike za otklanjanje poteškoća.

Preduvjeti

Prije početka provjerite jesu li ispunjeni sljedeći uvjeti:

  • Operacijski sustav: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 ili AlmaLinux/Rocky 8/9/10
  • Hardverski i mrežni zahtjevi: nema (ovaj vodič koristi osnovne alate naredbenog retka)
  • Pristup: sudo ili root pristup poslužitelju
  • Potrebno znanje: osnovno korištenje Linux naredbenog retka

Korak 1: Upravljanje zapisnicima u Linuxu: nepostojani i postojani zapisnici

Neki sustavi prema zadanim postavkama konfiguriraju journal da koristi nepostojane zapisnike (zapisnike pohranjene samo u RAM-u koji se gube pri ponovnom pokretanju). Za učinkovito upravljanje zapisnicima u Linuxu potrebni su nam postojani zapisnici (zapisnici spremljeni na disk koji se zadržavaju nakon ponovnih pokretanja) kako biste mogli istražiti rušenja i nakon ponovnog pokretanja.

Pokrenite sljedeću naredbu da provjerite konfiguraciju pohrane:

sudo grep -i 'storage' /etc/systemd/journald.conf

Očekivani izlaz:

#Storage=auto

Trebali biste vidjeti izlaz koji pokazuje je li pohrana postavljena na auto, persistent ili volatile. Zakomentirani redak #Storage=auto znači da se koristi zadano ponašanje auto.

Info

Na RHEL/AlmaLinux/Rocky sustavima datoteka /etc/systemd/journald.conf prema zadanim postavkama možda ne postoji. U tom slučaju možete provjeriti /usr/lib/systemd/journald.conf ili konfigurirati uslugu stvaranjem datoteke /etc/systemd/journald.conf.d/persistent.conf.

Na Ubuntu 24.04 i Debianu 13 direktorij /var/log/journal već postoji, a postojano bilježenje radi bez dodatne konfiguracije. Ako direktorij nedostaje (primjerice na svježoj instalaciji AlmaLinuxa) i želite nametnuti postojano bilježenje, stvorite direktorij i ponovno pokrenite systemd sustav za bilježenje (tim direktorijem upravlja usluga systemd-journald):

sudo mkdir -p /var/log/journal sudo systemctl restart systemd-journald

Na AlmaLinux/RHEL sustavima dodatno morate prenijeti (flush) zapisnike s nepostojane lokacije /run/log/journal u novu postojanu pohranu na disku:

sudo journalctl --flush

Ne biste trebali vidjeti nikakav izlaz. To potvrđuje da se usluga uspješno ponovno pokrenula i da će sada postojane podatke zapisivati na disk.

Korak 2: Osnovne naredbe journalctl za systemd zapisnike

Za prikaz svih dostupnih unosa koristite zadanu naredbu.

Pokrenite sljedeću naredbu:

sudo journalctl

Očekivani izlaz:

May 20 10:00:00 server systemd[1]: Started Logging Service. May 20 10:00:01 server kernel: Linux version 5.15.0-101-generic...

Trebali biste vidjeti straničen popis svih systemd zapisnika na vašem poslužitelju. Pritisnite q za izlaz iz preglednika (pager).

Info

U systemd verziji 255 i novijima (primjerice na Ubuntu 24.04, Debianu 13 i AlmaLinuxu 10) zaglavlje -- Logs begin at... više se prema zadanim postavkama ne prikazuje.

Za učinkovitu analizu zapisnika pomoću journalctl rijetko ćete htjeti čitati sve od početka. Izlaz možete obrnuti da najprije vidite najnovije unose pomoću zastavice -r.

Pokrenite sljedeću naredbu:

sudo journalctl -r

Očekivani izlaz:

May 23 20:00:00 server sshd[1234]: Accepted publickey for user from 192.168.1.50... May 23 19:59:58 server systemd[1]: Session 4 created for user.

Najnovije unose zapisnika trebali biste vidjeti pri vrhu zaslona. To je ključna tehnika za brzu analizu zapisnika pomoću journalctl nakon incidenta.

Info

Zastavica -r osobito je korisna kada vaš poslužitelj radi mjesecima jer omogućuje trenutačno preskakanje tisuća starih događaja.

Korak 3: Kako provjeriti zapisnike usluge

Često je potrebno riješiti problem s određenom jedinicom (unit) (objektom kojim systemd zna upravljati), primjerice jedinicom usluge (service unit) (vrstom jedinice koja kontrolira uslugu, poput nginx ili sshd). Zastavicom -u provjerite zapisnike usluge, na primjer web poslužitelja nginx.

Pokrenite sljedeću naredbu (pod pretpostavkom da je usluga instalirana, npr. putem sudo apt install nginx -y ili sudo dnf install nginx -y):

sudo journalctl -u nginx

Očekivani izlaz:

May 23 18:00:00 server systemd[1]: Starting A high performance web server and a reverse proxy server... May 23 18:00:01 server systemd[1]: Started A high performance web server and a reverse proxy server.

Trebali biste vidjeti samo unose zapisnika koje je generirala usluga nginx. To pomaže izdvojiti pogreške web prometa od ostalih sistemskih događaja u pozadini. Ako usluga nije instalirana, vidjet ćete samo -- No entries --.

Za provjeru zapisnika SSH demona naziv jedinice razlikuje se ovisno o distribuciji.

Za Ubuntu/Debian pokrenite:

sudo journalctl -u ssh

Za AlmaLinux/RHEL/Rocky pokrenite:

sudo journalctl -u sshd

Očekivani izlaz:

May 23 19:50:00 server sshd[1234]: Invalid user admin from 10.0.0.5 port 55432 May 23 19:55:00 server sshd[1235]: Accepted publickey for root from 10.0.0.2 port 44322

Trebali biste vidjeti pokušaje autentifikacije i događaje SSH demona.

Korak 4: Filtriranje zapisnika pomoću journalctl prema vremenu i vrsti

Pri radu s velikim količinama podataka potrebno je filtriranje zapisnika (postupak sužavanja izlaza zapisnika prema određenim kriterijima). Filtriranje zapisnika pomoću journalctl prema vremenu iznimno je korisno kada se prekid dogodio u poznato vrijeme.

Za prikaz poruka generiranih od posljednjeg pokretanja provjeravamo zapisnike pokretanja sustava (zapise događaja koji se odvijaju tijekom postupka pokretanja sustava).

Pokrenite sljedeću naredbu:

sudo journalctl -b

Očekivani izlaz:

May 23 08:00:00 server kernel: Linux version 5.15.0-101-generic... May 23 08:00:00 server kernel: Command line: BOOT_IMAGE=/boot/vmlinuz...

Izlaz bi trebao započeti prvim događajem trenutačnog slijeda pokretanja sustava.

Za vremensko filtriranje zapisnika pomoću journalctl koristite --since i --until.

Pokrenite sljedeću naredbu:

sudo journalctl --since "1 hour ago"

Očekivani izlaz:

May 23 19:00:00 server cron[567]: (root) CMD (/usr/local/bin/backup.sh) May 23 19:05:00 server sudo[580]: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/bin/ls

Trebali biste vidjeti sve događaje iz posljednjih 60 minuta.

Za prikaz zapisnika jezgre (poruka koje generira Linux jezgra, obično događaja povezanih s hardverom i upravljačkim programima) koristite zastavicu -k.

Pokrenite sljedeću naredbu:

sudo journalctl -k

Očekivani izlaz:

May 23 08:00:00 server kernel: e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex May 23 08:00:01 server kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Trebali biste vidjeti niskorazinske poruke jezgre, korisne za dijagnosticiranje problema s hardverom ili upravljačkim programima (driverima).

Korak 5: Filtriranje prema prioritetu

Svaki unos ima prioritet (razinu ozbiljnosti dodijeljenu poruci zapisnika). Razine se kreću od Debug (najniža razina prioriteta, koristi se za detaljne informacije o otklanjanju poteškoća) do Error (razina prioriteta koja označava kvar usluge ili procesa). Često provjeravana razina je Warning (razina prioriteta koja označava potencijalne probleme koji trenutačno nisu pogreške).

Za filtriranje zapisnika pomoću journalctl prema prioritetu koristite zastavicu -p.

Pokrenite sljedeću naredbu da vidite samo pogreške:

sudo journalctl -p err

Očekivani izlaz:

May 23 10:15:20 server systemd[1]: Failed to start Custom Application Service. May 23 14:30:00 server sshd[1122]: error: kex_exchange_identification: Connection closed by remote host

Trebali biste vidjeti sažet popis koji sadrži samo poruke razine error, a uobičajeni rad je izuzet.

Pokrenite sljedeću naredbu da vidite upozorenja i pogreške:

sudo journalctl -p warning

Očekivani izlaz:

May 23 10:15:15 server systemd-udevd[330]: vda: Process '/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/vda' failed with exit code 1. May 23 10:15:20 server dhcpcd[400]: eth0: no IPv6 Routers available

Trebali biste vidjeti i upozorenja i pogreške, što daje širi pregled potencijalnih problema. Na čistom operacijskom sustavu uobičajeno je vidjeti rutinska upozorenja usluga poput multipathd, irqbalance, dhcpcd ili udev, a ne kritične kvarove usluga. Točan izlaz uvelike ovisi o konfiguraciji i okruženju vašeg sustava.

Korak 6: Kako pratiti Linux zapisnike u stvarnom vremenu

Pri primjeni promjena konfiguracije ili reprodukciji problema najbolje je pratiti Linux zapisnike u stvarnom vremenu. Koristite zastavicu -f (follow).

Pokrenite sljedeću naredbu:

sudo journalctl -f

Očekivani izlaz:

May 23 20:05:00 server sudo[2001]: user : TTY=pts/1 ; PWD=/ ; USER=root ; COMMAND=/bin/bash May 23 20:05:00 server su[2002]: (to root) user on pts/1 May 23 20:05:00 server su[2002]: pam_unix(su:session): session opened for user root by user(uid=1000)

Trebali biste vidjeti najnovije unose zapisnika, a terminal će ostati aktivan i ispisivati nove događaje čim se dogode. Pritisnite Ctrl+C za izlaz.

Za praćenje zapisnika SSH demona u stvarnom vremenu naziv jedinice razlikuje se ovisno o distribuciji.

Za Ubuntu/Debian pokrenite:

sudo journalctl -u ssh -f

Za AlmaLinux/RHEL/Rocky pokrenite:

sudo journalctl -u sshd -f

Očekivani izlaz:

May 23 20:10:15 server sshd[2100]: Connection from 192.168.1.100 port 45678 May 23 20:10:17 server sshd[2100]: Accepted publickey for admin from 192.168.1.100 port 45678 May 23 20:10:17 server sshd[2100]: pam_unix(sshd:session): session opened for user admin by (uid=0)

Trebali biste uživo vidjeti pokušaje SSH autentifikacije u trenutku kad se događaju.

Korak 7: Prostor na disku i rotacija zapisnika

Systemd journal tijekom vremena može jako narasti. Postupak arhiviranja i brisanja starih zapisnika radi uštede prostora naziva se rotacija zapisnika. Možete provjeriti koliko prostora systemd journal trenutačno zauzima.

Pokrenite sljedeću naredbu:

sudo journalctl --disk-usage

Očekivani izlaz:

Archived and active journals take up 200.0M in the file system.

Trebali biste vidjeti izlaz koji prikazuje ukupni prostor koji zauzimaju vaše datoteke zapisnika.

Za ručnu rotaciju zapisnika i oslobađanje prostora na disku možete očistiti podatke (vacuum) prema vremenu ili veličini.

Pokrenite sljedeću naredbu da zadržite samo posljednjih 500 MB podataka:

sudo journalctl --vacuum-size=500M

Očekivani izlaz:

Vacuuming done, freed 0B of archived journals from /var/log/journal.

Trebali biste vidjeti izlaz koji pokazuje da su stare datoteke izbrisane dok ukupna veličina nije pala ispod 500 MB.

Warning

Čišćenje (vacuum) journala trajno briše starije unose. Prije pokretanja ove naredbe provjerite da vam nisu potrebni zbog usklađenosti ili istrage.

Tip

Usluga systemd-journald upravlja automatskom rotacijom prema ograničenjima u /etc/systemd/journald.conf. Ručno čišćenje obično nije potrebno osim ako se disk iznenada ne napuni.

Provjera

Kako biste se uvjerili da postavke bilježenja ispravno rade i da je postojana pohrana aktivna:

  1. Provjerite je li stvorena lokacija za pohranu zapisnika:

    ls -ld /var/log/journal

    Trebali biste vidjeti direktorij u vlasništvu korisnika root. Ovisno o distribuciji, grupa može biti systemd-journal ili root (oboje je uobičajeno).

  2. Potvrdite da journald radi:

    sudo systemctl status systemd-journald

    Trebali biste vidjeti da je usluga u stanju active (running).

Otklanjanje poteškoća

Ako naiđete na probleme pri upravljanju zapisnicima, provjerite ove uobičajene scenarije:

  • Prazni zapisnici usluge (-- No entries --): Provjerite je li usluga doista instalirana i pokrenuta. Također provjerite koristite li ispravan naziv jedinice za svoju distribuciju (npr. ssh na Debianu/Ubuntuu naspram sshd na RHEL/AlmaLinuxu).
  • Nedostaje /var/log/journal: Na nekim sustavima (poput AlmaLinuxa) ovaj direktorij morate ručno stvoriti i ponovno pokrenuti uslugu bilježenja da biste omogućili postojane zapisnike. Ako izostavite ovaj korak, zapisnici će ostati u nepostojanoj memoriji (/run/log/journal).
  • Pristup odbijen (Permission denied): Ako ne možete čitati zapisnike bez sudo, provjerite je li vaš korisnik član grupe systemd-journal ili adm (sudo usermod -aG systemd-journal $USER).

Poništavanje promjena

Ako želite onemogućiti postojano bilježenje i vratiti se na nepostojane zapisnike (primjerice radi uštede prostora na disku):

  1. Uklonite direktorij postojane pohrane:

    sudo rm -rf /var/log/journal

  2. Ponovno pokrenite uslugu bilježenja da biste ponovno stvorili nepostojanu pohranu u /run/log/journal:

    sudo systemctl restart systemd-journald

Zaključak

To je sve. Sada poznajete osnove upravljanja zapisnicima u Linuxu. Uz prave naredbe journalctl možete učinkovito pregledavati systemd zapisnike, primjenjivati filtre i upravljati prostorom na disku. Bilo da trebate analizirati zapisnike pomoću journalctl nakon rušenja ili samo provjeriti ispravnost rada usluge, ovladavanje journalctlom ključan je korak u održavanju zdrave infrastrukture.

Verzija dokumenta: 1.0
Posljednje ažuriranje: svibanj 2026.
Vlasnik: Tim za tehničku dokumentaciju

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA