首页/系统/Linux 运维命令速查//var/log/messages 与 /var/log/syslog

/var/log/messages 与 /var/log/syslog

传统 syslog 文件:RHEL 系主文件 /var/log/messages、Debian 系 /var/log/syslog;rsyslog 负责落盘,字段与 journal 互补。

Linux 运维命令速查系统更新于 2026-10-13

messages 与 syslog 是什么

/var/log/messages 与 /var/log/syslog 是传统文本系统日志。RHEL 系把通用系统消息写进 messages,Debian/Ubuntu 写进 syslog,两者都由 rsyslog(或 syslog-ng)按 /etc/rsyslog.conf 与 /etc/rsyslog.d/ 下的规则落盘,认证类消息另有 secure(RHEL)与 auth.log(Debian)。它们与 systemd 的 journal 是互补关系:文本日志便于 grep、便于集中转发与长期归档,journal 则提供结构化字段与优先级过滤。双写配置不一致时两处内容会不同,排查前要先确认哪一份是权威来源。

基本信息

适用平台Linux(rsyslog 默认安装;精简镜像可能只有 journal,无文本日志)
文件位置RHEL 系 /var/log/messages;Debian 系 /var/log/syslog
配置来源/etc/rsyslog.conf 与 /etc/rsyslog.d/*.conf(syslog-ng 为 /etc/syslog-ng/)
相关文件secure 或 auth.log 认证日志、kern.log 内核日志、user.log 用户态日志
权限说明通常 root 与 adm/systemd-journal 组可读,普通用户需 sudo

典型使用场景

  • 非结构化排障:在 kernel、服务、认证消息混杂时用 grep 快速圈出错误行
  • 集中日志核对:确认本机是否按预期把日志转发到日志服务器
  • 长期留存:文本日志便于归档、合规保存与第三方分析工具读取
  • 日志丢失排查:服务不写日志时确认 rsyslog 是否在运行、规则是否正确
  • 跨版本适配:在不同发行版之间编写统一的日志检查脚本

常用示例

常用示例
sudo tail -n 100 /var/log/messages           # RHEL 系主文件
sudo grep -i 'error' /var/log/syslog | tail -n 30   # Debian 系主文件
ls -lh /var/log/messages*                    # 是否被 logrotate 轮转
zgrep -i 'fail' /var/log/messages-*.gz       # 连压缩归档一起查
grep -E '^(\*\.\*|authpriv)' /etc/rsyslog.conf /etc/rsyslog.d/*.conf 2>/dev/null | head
sudo rsyslogd -N1                            # 校验 rsyslog 配置语法
sudo logrotate -d /etc/logrotate.conf | head # 干跑查看轮转规则

文本日志与 journal 对照

维度messages / syslogjournalctl
存储形态纯文本文件,可用任何文本工具处理二进制日志加索引,按单元与字段检索
过滤能力逐行 grep 匹配按单元、优先级、时间窗口、任意字段过滤
轮转与保留由 logrotate 按策略切割压缩journald 按大小与时间自动清理
远程转发rsyslog 原生支持 UDP/TCP/RELP 转发由 systemd-journal-remote 或转发到 rsyslog 实现
文件不存在不代表没有日志:journald 接管后部分发行版默认不再写 messages 或 syslog,先用 systemctl status rsyslog 与配置文件确认日志流向,再去 journalctl 找。
/var 独立分区写满会让系统日志静默停止,表面看服务正常但日志全部丢失。容量监控必须覆盖 /var/log,并对日志分区单独设置告警。

易错点

  • journald 与 rsyslog 双写配置不同步时两处内容不一致,排查前先确认权威来源
  • messages 被轮转切走后 grep 找不到旧内容,要连 messages-*.gz 一起查,用 zgrep
  • 直接编辑 rsyslog.conf 不做语法校验就重启,配置错误会导致日志服务起不来、日志全丢
  • 把 rsyslog 的转发规则写错方向或端口,日志静默发丢而本机毫无提示

数据来源与参考

  • man 5 rsyslog.conf
  • RHEL 文档:rsyslog 基础配置

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌