Debian 系统日志“丢失”或“看不到”,通常不是真的被删除了,而是日志系统、配置或查看方式发生了变化。下面按最常见原因给你系统梳理一下,并给出排查方法。
systemd-journald现代 Debian(8+,尤其是 10/11/12)不再把日志直接写到 /var/log/messages 或 /var/log/syslog。
而是:
✅ 正确查看方式:
journalctl
journalctl -xe
journalctl -u sshd
/var/log 下日志文件不存在你可能发现:
ls /var/log/syslog
ls /var/log/messages
不存在或为空。
原因:
rsyslog✅ 检查:
systemctl status rsyslog
✅ 安装(如果你需要传统日志):
sudo apt install rsyslog
sudo systemctl enable --now rsyslog
默认情况下:
✅ 检查是否持久化:
ls /var/log/journal
如果没有这个目录,说明未持久化。
✅ 开启持久化:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
以后日志会保存在磁盘上。
Debian 默认会轮转并删除旧日志:
/etc/logrotate.conf
/etc/logrotate.d/
常见策略:
✅ 查看配置:
cat /etc/logrotate.conf
如果磁盘满了:
✅ 检查:
df -h
journalctl --disk-usage
✅ 清理旧 journal:
sudo journalctl --vacuum-size=100M
很多服务日志:
/var/log例如:
journalctl -u nginx
journalctl -u docker
journalctl -u sshd
而不是:
/var/log/nginx.log ❌
sudo journalctl
或:
sudo cat /var/log/syslog
➡️ 这是正常现象
# 1. 看 journal 日志
journalctl -xe
# 2. 是否安装 rsyslog
systemctl status rsyslog
# 3. journal 是否持久化
ls /var/log/journal
# 4. 磁盘是否满
df -h
# 5. 查看某个服务日志
journalctl -u 服务名
你可以直接告诉我:
cat /etc/debian_version)我可以一步一步帮你查到根因。