温馨提示×

linux syslog为何不记录

小樊
34
2026-08-14 08:13:38
栏目: 智能运维

Linux 的 syslog(或 rsyslog / journald)不记录日志,通常不是“完全不记”,而是记录被关闭、过滤、重定向或配置有误。下面按最常见原因 → 排查方法给你一个系统性的排查清单。


一、先确认你用的是哪种日志系统

不同发行版默认不同:

系统 默认日志
CentOS 6 rsyslog
CentOS 7+ rsyslog + journald
Ubuntu 16.04+ rsyslog / journald
Debian rsyslog
新系统 systemd-journald
ps -ef | grep -E 'rsyslog|syslog|journal'

二、最常见原因(90% 都在这里)

1️⃣ rsyslog 服务没启动

systemctl status rsyslog

如果没启动:

systemctl start rsyslog
systemctl enable rsyslog

2️⃣ 日志被写到了 journald,而不是 /var/log/messages

journalctl -xe

如果你只看到 journal,看不到 /var/log/messages

  • 这是 正常现象
  • rsyslog 可能没配置从 journal 读取

✅ 解决(rsyslog 读取 journal):

# rsyslog.conf
module(load="imjournal")

3️⃣ rsyslog 配置过滤掉了日志(最常见)

查看:

grep -R "stop" /etc/rsyslog.conf /etc/rsyslog.d/

常见坑:

*.* stop

或:

local0.none

✅ 临时测试:

logger "test log"
tail -f /var/log/messages

4️⃣ 日志级别设置过高(info 被忽略)

例如:

*.err   /var/log/messages

✅ 改成:

*.info   /var/log/messages

然后:

systemctl restart rsyslog

5️⃣ 日志文件不存在或权限错误

ls -l /var/log/messages

如果不存在:

touch /var/log/messages
chmod 600 /var/log/messages
systemctl restart rsyslog

6️⃣ 磁盘满了(非常常见)

df -h
du -sh /var/log/*

✅ 清理或扩容后重启 rsyslog


7️⃣ SELinux 阻止写日志(CentOS/RHEL)

getenforce

临时验证:

setenforce 0

如果恢复记录,说明是 SELinux 问题。


8️⃣ 程序根本没调用 syslog

例如:

openlog()
syslog()

或:

logger "test"

如果 logger 能记,但你的程序不能,说明程序没发 syslog


三、快速定位“到底记不记”

1️⃣ 用 logger 测试

logger "hello syslog"
journalctl -xe | grep hello
tail -f /var/log/messages

2️⃣ 实时看 rsyslog 在干什么

rsyslogd -dn 2>&1 | less

(调试模式)


四、systemd 系统特别说明

journald 默认不写传统文件

journalctl

如果你一定要 /var/log/messages

# /etc/rsyslog.conf
module(load="imjournal")

五、常见“我以为没记录,其实记了”的情况

现象 实际
看不到 /var/log/messages 记在 journald
只看到部分日志 级别过滤
服务日志消失 服务用 stdout,被 systemd 接管
容器里没日志 容器没开 syslog

六、给你一个“万能排查顺序”

1. systemctl status rsyslog
2. df -h
3. logger test
4. journalctl -xe
5. 检查 rsyslog.conf 级别
6. 检查 stop / none

七、如果你愿意,我可以进一步帮你

你可以直接贴:

  1. 发行版 + 版本
    cat /etc/os-release
    
  2. /etc/rsyslog.conf
  3. 你说的“不记录”是指哪一类日志(sshd / 应用 / kernel / cron?)

我可以直接帮你改配置文件,一步到位 ✅

0