You can now reconstruct any incident on your infrastructure. You know how to query journald for the incident window, forward logs reliably to central servers, parse and correlate events across services, and build alerting pipelines that catch problems before users do.
1journald stores structured binary logs. rsyslog handles routing and forwarding. They are complementary -- use both. journald for local investigation, rsyslog for centralized collection.
2journalctl --since "2026-04-09 02:40" --until "2026-04-09 03:00" -p err is the first command to run during any incident investigation.
3Enable persistent journald storage: mkdir /var/log/journal. Without this, logs are lost on reboot and you lose your post-incident evidence.
4rsyslog forwarding over TCP with a disk queue is the production standard. Without a disk queue, messages are lost when the remote server is down.
5Use facility local0..local7 for your applications. Route them to dedicated files. Never write everything to /var/log/syslog -- it becomes unsearchable.
6Forward logs off the source node in real time. A local-only log that an attacker can delete is not an audit trail -- it is a suggestion.
7Log format matters. JSON output from applications enables automated parsing and SIEM ingestion. Unstructured text logs require regex extraction that is fragile.
8Design retention tiers before an incident. Hot (local, 30 days), warm (central, 90 days), cold (archive, compliance period). The decision cannot be made retroactively.
9An unmonitored log is the same as no log. Automated daily review with logwatch plus threshold-based alerting ensures logs are actually used, not just collected.