在 CentOS 中,“message 不记录”通常指 /var/log/messages 没有日志内容或不再更新。这是比较常见的问题,原因一般集中在 rsyslog 服务、配置文件、日志轮转、journald 接管 等方面。
下面按最常见原因逐一说明,并给出排查方法。
CentOS 6/7/8 默认使用 rsyslog 写 /var/log/messages。
systemctl status rsyslog
systemctl start rsyslog
systemctl enable rsyslog
查看是否有记录 messages 的规则:
grep messages /etc/rsyslog.conf /etc/rsyslog.d/*.conf
正常应类似:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
如果被注释或删除,就不会记录。
在 /etc/rsyslog.conf 中添加:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
然后重启:
systemctl restart rsyslog
CentOS 7+ 默认使用 systemd-journald,很多日志只进 journal,不写 messages。
journalctl
grep -R "imjournal" /etc/rsyslog.conf /etc/rsyslog.d/
如果没有,可启用:
module(load="imjournal")
日志被 logrotate 切割后,如果 rsyslog 没收到 HUP 信号,可能停止写文件。
logrotate -f /etc/logrotate.d/syslog
systemctl restart rsyslog
df -h /var
ls -l /var/log/messages
正常应为:
-rw------- 1 root root ...
在 CentOS Stream / RHEL 9 中:
journalctl/var/log/messages 可能内容很少systemctl status rsyslog
grep messages /etc/rsyslog.conf
journalctl -n 20
df -h /var
如果你愿意,可以告诉我:
cat /etc/centos-release)logrotate 或改过 rsyslog 配置我可以给你更精确的修复方案。