2.5 KiB
System Log Management *JournalCTL)
1. Introduction to journalctl
journalctl is a command-line utility for querying and displaying logs from the systemd journal. The systemd journal is a centralized logging system that collects and stores logging data from various sources, including the kernel, system services, and applications.
2. Basic Usage
To view all logs:
journalctl
To follow new log entries in real-time:
journalctl -f
3. Filtering Logs
By time:
journalctl --since "2024-01-01 00:00:00"
journalctl --until "2024-01-31 23:59:59"
journalctl --since "1 hour ago"
By service unit:
journalctl -u nginx.service
journalctl -u ssh.service
By priority level:
journalctl -p err
Priority levels: emerg, alert, crit, err, warning, notice, info, debug
By kernel messages:
journalctl -k
4. Output Formatting
JSON output:
journalctl -o json
Short output format:
journalctl -o short
Verbose output:
journalctl -o verbose
5. Boot-specific Logs
Current boot:
journalctl -b
Previous boot:
journalctl -b -1
6. User-specific Logs
journalctl _UID=1000
7. Disk Usage and Log Rotation
View disk usage:
journalctl --disk-usage
Rotate logs:
journalctl --rotate
Vacuum old logs:
journalctl --vacuum-time=1week
journalctl --vacuum-size=1G
8. Remote Journal Access
To access logs on a remote system:
journalctl -D /path/to/journal/directory
9. Persistent Journal Storage
Edit /etc/systemd/journald.conf:
Storage=persistent
Restart journald:
sudo systemctl restart systemd-journald
10. Forwarding Logs to a Central Server
Install rsyslog:
sudo apt install rsyslog
Configure /etc/rsyslog.conf for forwarding:
*.* @@central-log-server:514
Restart rsyslog:
sudo systemctl restart rsyslog
11. Security Considerations
- Restrict access to journal files
- Use encryption for remote logging
- Regularly audit and review logs
- Implement log retention policies
12. Performance Tuning
Adjust RateLimitInterval and RateLimitBurst in /etc/systemd/journald.conf to balance between logging thoroughness and system performance.
13. Integration with Other Tools
journalctl can be combined with other tools like grep, awk, and sed for advanced log analysis:
journalctl | grep "error" | awk '{print $1, $2, $3}'
14. Scripting and Automation
You can use journalctl in shell scripts for automated log analysis and reporting.