Linux 的 syslog 为空,通常不是“没日志”,而是配置、服务或路径发生了变化。下面按最常见原因 → 排查方法给你一个系统性的说明。
/var/log/syslog在 Ubuntu 16.04+、Debian 9+、CentOS 7+ 等系统中:
systemd-journald 管理/var/log/syslog 可能不存在或为空✅ 正确查看方式:
journalctl
journalctl -xe
查看某个服务:
journalctl -u sshd
systemctl status rsyslog
如果没运行:
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
which rsyslogd
如果没有:
# Ubuntu / Debian
sudo apt install rsyslog
# CentOS / Rocky / Alma
sudo yum install rsyslog
| 系统 | 日志位置 |
|---|---|
| Ubuntu / Debian | /var/log/syslog |
| RHEL / CentOS 7+ | /var/log/messages |
| 容器 / 精简系统 | 可能完全没有 |
检查:
ls -lh /var/log/
ls -lh /var/log/syslog
如果文件大小为 0,可能是:
df -h
如果 /var 或 / 100%:
du -sh /var/log/*
检查配置:
rsyslogd -N1
常见错误:
解决:
docker logs <container>
sudo service rsyslog start
# 1. 是否是 systemd
ps -p 1 -o comm=
# 2. rsyslog 是否在运行
systemctl status rsyslog
# 3. 文件是否存在
ls -lh /var/log/syslog /var/log/messages
# 4. journal 是否有日志
journalctl -n 20
# 5. 磁盘是否满了
df -h
90% 情况下:不是没日志,而是你没用对查看方式
✅systemd系统优先用journalctl
✅ 传统系统才看/var/log/syslog
如果你愿意,可以直接把下面信息发我,我可以精确告诉你是哪一种情况:
cat /etc/os-release
ps -p 1 -o comm=
ls -lh /var/log/
systemctl status rsyslog