Debian 下 syslog 无输出是一个比较常见的问题,通常不是“系统没日志”,而是日志服务或配置发生了变化。下面按最常见原因逐条说明,并给出排查方法。
systemd-journald,而不是传统 syslog从 Debian 8(Jessie)开始:
systemd-journald 管理/var/log/syslog 可能不存在或为空ls -l /var/log/syslog
journalctl
如果 journalctl 有内容,而 /var/log/syslog 没有,这是正常现象。
dpkg -l | grep rsyslog
如果没有:
sudo apt install rsyslog
systemctl status rsyslog
若未运行:
sudo systemctl enable --now rsyslog
查看配置文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
确认是否有:
*.*;auth,authpriv.none -/var/log/syslog
或是否被注释掉。
/etc/systemd/journald.conf 中可能设置为:
Storage=volatile
或:
ForwardToSyslog=no
Storage=persistent
ForwardToSyslog=yes
然后:
sudo systemctl restart systemd-journald
sudo systemctl restart rsyslog
如果你在:
通常:
例如:
stdout 而非 syslog可临时测试:
logger "test message"
cat /var/log/syslog
若无输出,说明链路断在 rsyslog / journald。
journalctl | head
systemctl status rsyslog
ls -l /var/log/syslog
dpkg -l | grep rsyslog
cat /etc/systemd/journald.conf | grep -E "Storage|Forward"
Debian 无 syslog 输出,90% 是因为系统用 journald 代替了传统 syslog,或 rsyslog 未安装/未运行。
如果你愿意,可以告诉我:
cat /etc/debian_version)journalctl 是否有日志我可以给你更精确的建议。