Naplófájlok olvasása Linuxon: journalctl és a /var/log könyvtár

Ha egy szolgáltatás nem indul el, egy weboldal hibát ad, vagy valami furcsát tapasztal a szerveren, a választ szinte mindig a naplófájlokban (logokban) találja. A modern Linux rendszereken a naplók két helyen gyűlnek: a systemd naplójában, amelyet a journalctl paranccsal olvashat, és a /var/log könyvtár szöveges fájljaiban.

A naplók többsége csak root felhasználóként vagy sudo-val olvasható.

A systemd napló: journalctl

A journalctl a rendszer és a systemd által kezelt szolgáltatások összes üzenetét egy helyen mutatja. A leghasznosabb kapcsolók:

# Egy szolgáltatás naplója (pl. webszerver, SSH, adatbázis)
sudo journalctl -u httpd
sudo journalctl -u sshd
sudo journalctl -u mariadb

# Csak a legutóbbi 100 sor
sudo journalctl -u httpd -n 100

# Folyamatos követés (kilépés: Ctrl+C)
sudo journalctl -u httpd -f

# Időszak szerint
sudo journalctl --since "1 hour ago"
sudo journalctl --since "2026-10-20 08:00" --until "2026-10-20 09:00"

# Csak a hibák és annál súlyosabb üzenetek
sudo journalctl -p err

# Az aktuális, illetve az előző rendszerindítás óta
sudo journalctl -b
sudo journalctl -b -1

# Kernel üzenetek (pl. memóriahiány, lemezhibák)
sudo journalctl -k

A kapcsolók kombinálhatók, például sudo journalctl -u nginx -p err --since today.

A journalctl a kimenetet lapozva jeleníti meg: a szóközzel lapozhat, a / után keresőszót adhat meg, a q billentyűvel léphet ki.

Megmaradnak-e a naplók újraindítás után?

Ha a journalctl --list-boots csak egy rendszerindítást mutat, a napló csak a memóriában tárolódik, és újraindításkor elvész. A tartós tárolás bekapcsolása:

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

A napló által foglalt hely a journalctl --disk-usage paranccsal ellenőrizhető, és például 500 MB-ra csökkenthető:

sudo journalctl --vacuum-size=500M

A /var/log könyvtár

Sok szolgáltatás (főleg a webszerverek és a levelezés) saját szöveges naplófájlba ír. A leggyakoribbak:

Napló AlmaLinux, Rocky Linux Ubuntu, Debian
Általános rendszernapló /var/log/messages /var/log/syslog
Bejelentkezések, SSH, sudo /var/log/secure /var/log/auth.log
Apache hibanapló /var/log/httpd/error_log /var/log/apache2/error.log
Apache hozzáférési napló /var/log/httpd/access_log /var/log/apache2/access.log
Nginx /var/log/nginx/error.log, access.log /var/log/nginx/error.log, access.log
Levelezés /var/log/maillog /var/log/mail.log
Csomagkezelő /var/log/dnf.log /var/log/apt/history.log

Debian 12-től az rsyslog alapértelmezés szerint nincs telepítve, ezért a /var/log/syslog és az /var/log/auth.log hiányozhat; ilyenkor ugyanezek az üzenetek a journalctl paranccsal olvashatók.

cPanel szerveren az Apache hibanaplója a /etc/apache2/logs/error_log, a levelezésé (Exim) a /var/log/exim_mainlog fájlban van. Az Exim üzeneteinek értelmezéséhez lásd: A különböző exim státuszkódok magyarázata.

Naplófájlok olvasása tail, less és grep paranccsal

# Az utolsó 50 sor
sudo tail -n 50 /var/log/httpd/error_log

# Folyamatos követés: az új sorok azonnal megjelennek (kilépés: Ctrl+C)
sudo tail -f /var/log/httpd/error_log

# Lapozva, a fájl végéről indítva
sudo less +G /var/log/messages

# Keresés egy kifejezésre
sudo grep "Failed password" /var/log/secure
sudo grep -i "example.hu" /var/log/httpd/access_log

Hibakereséskor gyakran a legegyszerűbb, ha egy terminálban tail -f-fel követi a naplót, egy böngészőben pedig közben újratölti a hibás oldalt: a hozzá tartozó sor azonnal megjelenik. A találat előtti és utáni sorok megjelenítéséről a Grep: sorok megjelenítése a találat előtt és után cikkben olvashat.

Régebbi, tömörített naplók

A logrotate a naplófájlokat rendszeresen (jellemzően hetente) lezárja és archiválja, ezért a régebbi bejegyzések a .1, .2.gz vagy dátummal ellátott (pl. messages-20261019) fájlokban vannak. A tömörített fájlokban a zgrep és a zless paranccsal kereshet, kicsomagolás nélkül:

sudo zgrep "Out of memory" /var/log/messages-*

Ha egy naplófájl túl nagyra nőtt és betöltötte a lemezt, a nagy error_log fájlok megkereséséről és eltávolításáról szóló cikkünk segít.