温馨提示×

ubuntu syslog为何停止

小樊
54
2026-09-05 04:41:54
栏目: 智能运维

在 Ubuntu 上 syslog 停止(不写日志或服务挂掉) 通常由以下几类原因导致,你可以按顺序排查:


一、服务本身的问题(最常见)

Ubuntu 默认使用 rsyslog(不是 syslog-ng):

systemctl status rsyslog

常见情况:

1. rsyslog 服务停止

systemctl status rsyslog
# 如果 inactive
systemctl start rsyslog
systemctl enable rsyslog

2. rsyslog 启动失败

查看错误:

journalctl -u rsyslog -xe

常见错误:

  • 配置文件语法错误
  • 端口被占用(如 514)
  • 磁盘满

二、磁盘或 inode 满了(非常常见)

磁盘空间满

df -h

如果 /var/ 是 100%,syslog 会直接停止写入。

inode 用完

df -i

即使磁盘没满,inode 满了也会导致 syslog 停止。

✅ 解决:

journalctl --vacuum-size=200M
rm -f /var/log/*.gz

三、配置文件错误

检查配置文件:

rsyslogd -N1

常见错误:

  • /etc/rsyslog.conf
  • /etc/rsyslog.d/*.conf

例如:

  • 重复监听端口
  • 错误的模板
  • 文件权限错误

四、日志被 journald 接管(systemd 环境)

Ubuntu 默认:

  • systemd-journald 收集日志
  • rsyslog 从 journal 读取并写文件

如果 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 权限被改
  • rsyslog 用户无写权限

修复示例:

chown syslog:adm /var/log/syslog
chmod 640 /var/log/syslog

六、被安全软件或容器限制

  • SELinux / AppArmor
  • Docker / LXC 环境
  • 只读根文件系统

检查:

dmesg | grep rsyslog
aa-status

七、快速自检清单 ✅

systemctl status rsyslog
df -h
df -i
rsyslogd -N1
journalctl -u rsyslog

如果你愿意,可以把下面信息贴出来,我可以精确判断原因:

  1. Ubuntu 版本
  2. systemctl status rsyslog 输出
  3. journalctl -u rsyslog -n 50 输出

0