温馨提示×

ubuntu syslog为何为空

小樊
43
2026-10-07 23:55:20
栏目: 智能运维

Ubuntu 中 syslog 为空(或 /var/log/syslog 没有内容 / 大小为 0)是常见问题,通常不是系统没日志,而是日志机制或配置发生了变化。下面按常见原因逐一说明和解决。


一、Ubuntu 新版本已默认使用 systemd-journald

从 Ubuntu 16.04+(尤其 18.04 / 20.04 / 22.04) 开始:

  • 系统日志主要由 systemd-journald 管理
  • /var/log/syslog 不再默认写入

✅ 查看日志正确方式:

journalctl
journalctl -xe
journalctl -u nginx

二、rsyslog 未安装或未运行

/var/log/syslog 由 rsyslog 写入。

1. 检查是否安装

dpkg -l | grep rsyslog

如果没有:

sudo apt install rsyslog

2. 检查服务状态

systemctl status rsyslog

如果未运行:

sudo systemctl enable --now rsyslog

三、rsyslog 配置未写 syslog

检查配置文件:

cat /etc/rsyslog.conf
cat /etc/rsyslog.d/50-default.conf

确保有类似内容:

*.*;auth,authpriv.none -/var/log/syslog

如果缺失,可手动添加并重启:

sudo systemctl restart rsyslog

四、磁盘或权限问题

1. 磁盘满

df -h

2. 文件权限异常

ls -l /var/log/syslog

正常应是:

-rw-r----- 1 syslog adm

修复权限:

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

五、日志被 journald 限制(仅在内存中)

如果 journal 只在内存:

Storage=volatile

会导致重启后日志丢失。

检查:

grep Storage /etc/systemd/journald.conf

建议改为:

Storage=persistent

然后:

sudo systemctl restart systemd-journald

六、你查看的是“错误的地方”

常见混淆:

文件 说明
/var/log/syslog rsyslog
/var/log/messages 某些版本无
journalctl 真正系统日志

七、快速排查清单 ✅

systemctl status rsyslog
ls -l /var/log/syslog
journalctl -n 50
df -h

如果你愿意,可以告诉我:

  • Ubuntu 版本(lsb_release -a)
  • 是否容器 / 云服务器
  • /var/log/syslog 是否存在但为空

我可以给你更精确的原因和修复方案。

0 踩