Journalctl Complete Guide
The systemd journal (managed by journald) collects logs from the kernel, all system services, and applications. Unlike text log files, the journal is a structured binary format that stores extra metadata with each entry: priority level, systemd unit, PID, UID, executable path. This structure enables powerful filtering that text-based grep cannot easily replicate. journalctl is the command-line query tool for the journal.
Why journalctl over log files?
journalctl advantages over /var/log/ text files:
grep /var/log/syslog journalctl
───────────────────── ──────────────────────────────
Text search only Structured metadata filters
Must know which file Single query across all sources
No priority filtering -p err, -p warning etc.
No boot-scoped queries -b 0 (current), -b -1 (last)
Can miss wrapped long lines Full structured records always
Needs root to read auth.log Members of adm/systemd-journal group can readBasic usage
journalctl # All journal entries, oldest first (in pager)
journalctl -r # Reverse order — newest first
journalctl -n 50 # Last 50 lines
journalctl -f # Follow mode — like tail -f
journalctl -e # Jump to end of journal immediately
Filtering by time
# Time ranges
journalctl --since "2025-06-09 14:00:00"
journalctl --since "1 hour ago"
journalctl --since "10 minutes ago"
journalctl --since today
journalctl --since "2025-06-09" --until "2025-06-10"
# Boot-scoped queries (very useful for finding what caused a crash)
journalctl -b # Current boot only
journalctl -b -1 # Previous boot (use after a crash to see what happened)
journalctl -b -2 # Boot before that
# List available boots
journalctl --list-boots
journalctl --list-boots output
-2 7f3b... Mon 2025-06-07 09:00:00 UTC—Mon 2025-06-07 17:34:01 UTC
-1 2c1a... Mon 2025-06-08 09:00:00 UTC—crash (power failure)
0 9d4f... Tue 2025-06-09 09:00:15 UTC—Tue 2025-06-09 15:10:00 UTC
Filtering by unit and priority
# Filter by systemd unit (service name)
journalctl -u nginx # All nginx logs
journalctl -u nginx -u postgresql # Logs from both services
journalctl -u nginx -f # Follow nginx logs in real time
journalctl -u ssh --since "1 hour ago"
# Filter by priority level (-p filters to that level AND above)
# Levels: emerg(0) alert(1) crit(2) err(3) warning(4) notice(5) info(6) debug(7)
journalctl -p err # Errors and above (err, crit, alert, emerg)
journalctl -p warning # Warnings and above
journalctl -p err --since "1 hour ago" # Recent errors
# Filter by kernel messages only
journalctl -k # Kernel messages (equivalent to dmesg)
Persistent journal storage
# By default, Ubuntu may store journal in memory only (lost on reboot)
# Check current storage location:
journalctl --disk-usage
# To enable persistent storage (survives reboots):
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
# Configure journal size limits (in /etc/systemd/journald.conf):
# SystemMaxUse=500M ← Max journal disk space
# SystemKeepFree=1G ← Keep at least 1G free on disk
# MaxRetentionSec=1month ← Delete entries older than 1 month
sudo nano /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
# Manually vacuum old journal entries:
sudo journalctl --vacuum-time=2weeks # Delete entries older than 2 weeks
sudo journalctl --vacuum-size=200M # Shrink to 200MB
Conclusion
The most useful journalctl patterns day-to-day: journalctl -u servicename -f to follow a service's logs, journalctl -b -1 -p err to see what errors occurred in the previous boot (critical after unexpected reboots), and journalctl --since "1 hour ago" -p warning to see recent problems. Enable persistent journal storage on any server you care about — without it you lose logs on every reboot.
FAQ
Is Journalctl Complete Guide important for Ubuntu administrators?+
Yes. It supports practical Ubuntu administration because it connects directly to server reliability, security, troubleshooting, or daily operations.
Should I practice this on a live server?+
Use a lab VM first. After you understand the command output and rollback path, apply the workflow carefully on real systems.
What should I do after reading this article?+
Run the practice commands, write down what each one shows, and continue to the next article in the Ubuntu roadmap.
Need help with Ubuntu administration?
Work directly with Muhammad Irfan Aslam for Ubuntu Server, Linux, cloud, Docker, DevOps, CI/CD, or infrastructure troubleshooting support.
Hire Me for Support