Debian 上 syslog 为空(或 /var/log/syslog 不存在 / 没有内容)通常是由下面几类原因造成的,按出现频率从高到低说明:
Debian 默认并不强制使用 syslog,而是使用 systemd-journald。从 Debian 8 以后:
/var/log/syslog 由 rsyslog 或 syslog-ng 生成/var/log/syslog 就是空的或不存在ps aux | grep rsyslog
ls -l /var/log/syslog
sudo apt update
sudo apt install rsyslog
sudo systemctl enable --now rsyslog
现代 Debian 默认把日志写入 journal,而不是文本 syslog:
journalctl
如果你只看到 journal 而没有 syslog 文件,这是正常行为。
安装 rsyslog(如上)
即使装了 rsyslog,也可能:
systemctl status rsyslog
cat /etc/rsyslog.conf
ls /etc/rsyslog.d/
确保有类似:
*.*;auth,authpriv.none -/var/log/syslog
/var/log 所在分区满了df -h /var
ls -l /var/log/syslog
可能已经被 logrotate 清掉:
ls -l /var/log/syslog*
| 现象 | 原因 |
|---|---|
/var/log/syslog 不存在 |
没装 rsyslog |
journalctl 有日志 |
使用 systemd journal |
| syslog 文件 0 字节 | rsyslog 未运行或配置错误 |
| 刚装的系统 | Debian 默认不用 syslog |
如果你愿意,可以贴一下:
cat /etc/os-release
systemctl status rsyslog
ls -l /var/log/syslog
我可以帮你精确判断是哪一类问题。