温馨提示×

centos message为何不记录

小樊
35
2026-09-27 06:22:58
栏目: 智能运维

在 CentOS 中,“message 不记录”通常指 /var/log/messages 没有日志内容或不再更新。这是比较常见的问题,原因一般集中在 rsyslog 服务、配置文件、日志轮转、journald 接管 等方面。

下面按最常见原因逐一说明,并给出排查方法。


一、rsyslog 服务未运行(最常见)

CentOS 6/7/8 默认使用 rsyslog 写 /var/log/messages。

检查服务状态

systemctl status rsyslog

如果没运行

systemctl start rsyslog
systemctl enable rsyslog

二、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

三、日志被 journald 接管(CentOS 7/8 常见)

CentOS 7+ 默认使用 systemd-journald,很多日志只进 journal,不写 messages。

查看 journal 日志

journalctl

确认 rsyslog 是否从 journal 取日志

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 ...

六、某些版本默认不再用 messages(CentOS Stream / 新系统)

在 CentOS Stream / RHEL 9 中:

  • 更偏向 journalctl
  • /var/log/messages 可能内容很少

快速排查清单(建议按顺序)

systemctl status rsyslog
grep messages /etc/rsyslog.conf
journalctl -n 20
df -h /var

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

  • CentOS 版本(cat /etc/centos-release)
  • 是完全没内容还是突然不更新
  • 是否用过 logrotate 或改过 rsyslog 配置

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

0 踩