温馨提示×

为何linux syslog为空

小樊
33
2026-10-22 06:11:38
栏目: 智能运维

Linux 的 syslog(或现代系统中的 journald 日志)为空,通常有以下几个常见原因。可以按图索骥排查:


一、你查看的不是“正确的日志系统”

1. 系统使用了 systemd-journald,而不是 syslog

现代 Linux(Ubuntu 16.04+、CentOS 7+、Debian 8+)默认用 journald:

journalctl

如果这里有日志,但 /var/log/syslog 或 /var/log/messages 是空的,说明:

  • syslog 服务没装 / 没启动
  • 或 journald 没转发给 syslog

✅ 解决:

sudo apt install rsyslog        # Debian/Ubuntu
sudo systemctl enable --now rsyslog

二、syslog 服务未运行

2. rsyslog / syslog-ng 没启动

systemctl status rsyslog

如果是 inactive:

sudo systemctl start rsyslog

CentOS/RHEL:

systemctl status syslog

三、日志文件本身被清空或轮转异常

3. /var/log/syslog 被手动清空

ls -l /var/log/syslog

如果大小是 0,可能是:

  • 被 > /var/log/syslog 清空
  • logrotate 配置异常

四、权限或磁盘问题

4. 磁盘满了

df -h

如果 /var 满了,syslog 会停止写入。

5. 文件权限错误

ls -l /var/log/syslog

正常应为:

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

五、日志级别被过滤掉了

6. rsyslog 配置只记录高优先级

检查:

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

例如:

*.err;authpriv.none /var/log/syslog

会导致普通信息不记录。


六、容器 / 特殊环境

7. 在 Docker / 容器中

容器通常:

  • 没有 systemd
  • 没有 rsyslog
  • 日志走 stdout

✅ 查看方式:

docker logs <容器名>

七、系统刚启动 / 无事件

8. 系统非常“安静”

如果:

  • 刚装完系统
  • 没有服务报错
  • 没有登录

syslog 也可能接近空。


快速自查清单 ✅

journalctl | head
systemctl status rsyslog
ls -l /var/log/
df -h

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

  • 发行版(Ubuntu / CentOS / Alpine?)
  • 是否是容器
  • 空的日志路径(/var/log/syslog?/var/log/messages?)

我可以直接帮你定位。

0 踩