在 CentOS / RHEL 系统中,/var/log/messages 是 系统级日志核心文件,包含了内核、服务、硬件、网络等大量信息。分析它的关键是:知道看什么、怎么过滤、结合哪些日志一起看。下面给你一套实用分析方法。
/var/log/messages 通常包含:
⚠️ CentOS 7+ 默认也使用 rsyslog / journald,有些日志可能在
journalctl中更完整。
ls -lh /var/log/messages*
常见文件:
/var/log/messages 当前/var/log/messages-20260112 历史(按日期轮转)tail -n 100 /var/log/messages
实时查看(排错神器):
tail -f /var/log/messages
grep "Jan 12 10:" /var/log/messages
或某段时间:
sed -n '/Jan 12 10:00/,/Jan 12 11:00/p' /var/log/messages
grep -i "shutdown\|reboot\|panic\|oops" /var/log/messages
重点看:
Kernel panicOut of memorysegfaultgrep -i "failed\|error\|denied" /var/log/messages
例如:
systemd: Failed to start nginx.service
grep -i "disk\|sda\|I/O\|error" /var/log/messages
常见关键字:
I/O errorread-only file systemEXT4-fs errorgrep -i "oom\|memory\|swap" /var/log/messages
典型:
Out of memory: Kill process 1234 (java)
grep -i "network\|eth\|link\|unreachable" /var/log/messages
grep -i "sshd\|login\|session" /var/log/messages
(有些系统更详细在 /var/log/secure)
journalctl -b
journalctl -b -1
journalctl -u nginx
journalctl -u sshd
journalctl --since "2026-01-12 10:00" --until "2026-01-12 11:00"
示例:
Jan 12 10:23:01 server1 kernel: eth0: link up
结构:
时间 主机名 来源: 内容
kernel → 内核日志systemd → 系统服务sshd → SSHcron → 定时任务✅ 通用排错流程
messagesjournalctlerror / failed / panic / oom / denied❌ 只看最后几行
✅ 结合时间点回溯
❌ 只看 messages
✅ 配合 /var/log/secure、dmesg、服务日志
❌ 忽视轮转日志
✅ messages-* 里往往有真相
如果你愿意,可以把 具体报错内容贴出来,我可以帮你: