温馨提示×

怎样解析linux syslog

小樊
37
2026-07-02 01:14:01
栏目: 智能运维

解析 Linux syslog 一般从日志位置、格式、查看方式、过滤/分析、以及常见字段含义这几个方面入手。下面按实用角度系统说明。


一、syslog 在哪里?

1. 常见日志文件位置

不同发行版略有差异:

发行版 主要日志路径
Debian / Ubuntu /var/log/syslog
RHEL / CentOS / Rocky /var/log/messages
通用 /var/log/ 目录下
systemd 系统 journalctl(不是文件)

常见文件示例:

/var/log/syslog
/var/log/messages
/var/log/kern.log
/var/log/auth.log
/var/log/cron

二、syslog 的格式说明

典型 syslog 一行示例:

Oct 12 10:23:45 hostname sshd[12345]: Accepted password for root from 192.168.1.10 port 22

字段解析(从左到右)

字段 含义
Oct 12 10:23:45 时间戳(默认不含年份)
hostname 产生日志的主机名
sshd 服务/程序名
[12345] 进程 PID(可选)
Accepted password for root ... 日志内容

三、如何查看 syslog

1. 实时查看

tail -f /var/log/syslog

2. 查看最近 N 行

tail -n 100 /var/log/syslog

3. 用 less 翻页查看

less /var/log/syslog

常用操作:

  • G:跳到末尾
  • /error:搜索
  • q:退出

四、过滤与解析技巧

1. 按服务过滤

grep sshd /var/log/syslog

2. 按时间范围

grep "Oct 12 10:" /var/log/syslog

3. 按关键字

grep -i error /var/log/syslog

4. 查看某个 IP 的登录记录

grep "192.168.1.10" /var/log/syslog

五、systemd 系统(journalctl)

如果是 systemd,推荐用 journalctl

1. 查看全部日志

journalctl

2. 实时查看

journalctl -f

3. 查看某个服务

journalctl -u sshd

4. 按时间

journalctl --since "2025-01-01" --until "2025-01-02"

5. 内核日志

journalctl -k

六、常见 syslog 含义速查

日志示例 含义
sshd[...]: Accepted password SSH 登录成功
sshd[...]: Failed password SSH 登录失败
sudo: user : TTY=... sudo 使用记录
kernel: ... 内核日志
Out of memory OOM
segmentation fault 程序崩溃

七、进阶解析(脚本化)

1. 统计 SSH 登录失败 IP

grep "Failed password" /var/log/syslog | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr

2. 按小时统计日志量

awk '{print $1, $2, $3}' /var/log/syslog | cut -d: -f1 | uniq -c

八、日志轮转(要注意)

syslog 会轮转:

/var/log/syslog
/var/log/syslog.1
/var/log/syslog.2.gz

查看历史:

zcat /var/log/syslog.2.gz | less

九、推荐实践

  • 生产环境 不要只看 syslog,要结合:
    • journalctl
    • /var/log/ 下的专项日志
  • 使用 grep + awk + sort + uniq 快速定位问题
  • 对异常日志建立 规则或告警

如果你愿意,可以:

  • ✅ 贴一段 真实 syslog 内容
  • ✅ 说明是 哪类问题(登录、网络、内核、服务崩溃)

我可以帮你逐行解析并定位问题原因

0