在 Ubuntu 上 syslog 停止(不写日志或服务挂掉) 通常由以下几类原因导致,你可以按顺序排查:
Ubuntu 默认使用 rsyslog(不是 syslog-ng):
systemctl status rsyslog
常见情况:
systemctl status rsyslog
# 如果 inactive
systemctl start rsyslog
systemctl enable rsyslog
查看错误:
journalctl -u rsyslog -xe
常见错误:
df -h
如果 /var 或 / 是 100%,syslog 会直接停止写入。
df -i
即使磁盘没满,inode 满了也会导致 syslog 停止。
✅ 解决:
journalctl --vacuum-size=200M
rm -f /var/log/*.gz
检查配置文件:
rsyslogd -N1
常见错误:
/etc/rsyslog.conf/etc/rsyslog.d/*.conf例如:
Ubuntu 默认:
如果 journald 配置异常,rsyslog 可能收不到日志。
检查:
systemctl status systemd-journald
查看:
/etc/systemd/journald.conf
确保:
Storage=persistent
然后:
systemctl restart systemd-journald
systemctl restart rsyslog
ls -ld /var/log
ls -l /var/log/syslog
常见问题:
/var/log 权限被改修复示例:
chown syslog:adm /var/log/syslog
chmod 640 /var/log/syslog
检查:
dmesg | grep rsyslog
aa-status
systemctl status rsyslog
df -h
df -i
rsyslogd -N1
journalctl -u rsyslog
如果你愿意,可以把下面信息贴出来,我可以精确判断原因:
systemctl status rsyslog 输出journalctl -u rsyslog -n 50 输出