CentOS 中 messages 无记录(/var/log/messages 没有内容或为空),通常不是“日志丢了”,而是日志系统配置或写入方式发生了变化。下面按最常见原因逐条说明。
/var/log/messages从 CentOS 7 开始:
/var/log/messagesls -l /var/log/messages
journalctl
如果:
/var/log/messages 不存在或为空journalctl 有日志✅ 说明系统使用的是 journal
rpm -qa | grep rsyslog
如果没有输出:
yum install -y rsyslog
systemctl status rsyslog
如果未运行:
systemctl enable rsyslog
systemctl start rsyslog
/var/log/messages 被 rsyslog 配置排除grep -R messages /etc/rsyslog.conf /etc/rsyslog.d/
正常应有类似:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
如果:
stop / ~ 丢弃✅ 日志不会写入 messages
messages 默认 不记录 debug / info 以下debug 或 infologger -p info "test message"
tail -f /var/log/messages
df -h
df -i
ls -l /var/log/messages
应为:
-rw-r----- root root
getenforce
如果是 Enforcing,可临时测试:
setenforce 0
yum install rsyslog
systemctl enable --now rsyslog
并确保:
/etc/rsyslog.conf
中有:
module(load="imjournal")
| 现象 | 原因 |
|---|---|
| messages 为空 | 使用 journald |
| messages 不存在 | rsyslog 未安装 |
| 无新日志 | rsyslog 未启动 |
| 部分日志缺失 | rsyslog 规则过滤 |
| 磁盘满 | 无法写入 |
| CentOS 8 | 默认无 rsyslog |
journalctl -xe
journalctl -u sshd
journalctl --since today
/var/log/messagesyum install rsyslog
systemctl enable --now rsyslog
如果你愿意,可以告诉我:
cat /etc/redhat-release)我可以给你精确到配置文件的解决方案。