Linux 的 syslog(或现代系统中的 journald 日志)为空,通常有以下几个常见原因。可以按图索骥排查:
现代 Linux(Ubuntu 16.04+、CentOS 7+、Debian 8+)默认用 journald:
journalctl
如果这里有日志,但 /var/log/syslog 或 /var/log/messages 是空的,说明:
✅ 解决:
sudo apt install rsyslog # Debian/Ubuntu
sudo systemctl enable --now rsyslog
systemctl status rsyslog
如果是 inactive:
sudo systemctl start rsyslog
CentOS/RHEL:
systemctl status syslog
/var/log/syslog 被手动清空ls -l /var/log/syslog
如果大小是 0,可能是:
> /var/log/syslog 清空df -h
如果 /var 满了,syslog 会停止写入。
ls -l /var/log/syslog
正常应为:
-rw-r----- 1 syslog adm
检查:
/etc/rsyslog.conf
/etc/rsyslog.d/*
例如:
*.err;authpriv.none /var/log/syslog
会导致普通信息不记录。
容器通常:
✅ 查看方式:
docker logs <容器名>
如果:
syslog 也可能接近空。
journalctl | head
systemctl status rsyslog
ls -l /var/log/
df -h
如果你愿意,可以告诉我:
/var/log/syslog?/var/log/messages?)我可以直接帮你定位。