怎样分析linux syslog

2026-07-03技术问答243214

分析 Linux syslog 是排查系统问题、做安全审计和运维监控的基础。下面从获取位置、查看方法、分析思路、常见场景示例几个层面系统说明。


一、syslog 在哪里

1. 常见日志路径

/var/log/syslog        # Debian / Ubuntu
/var/log/messages      # RHEL / CentOS / Rocky / Alma
/var/log/secure        # 认证、SSH(RHEL)

2. journald(现代系统)

systemd 系统中,传统 syslog 可能由 systemd-journald 管理:

journalctl             # 查看所有日志
journalctl -xe         # 查看最近错误

二、基本的查看方法

1. 实时查看

tail -f /var/log/syslog

2. 按时间查看

grep "2025-01-21" /var/log/syslog

3. 查看某个服务的日志

grep sshd /var/log/syslog
journalctl -u sshd

4. 查看错误级别日志

grep -i "error\|fail\|critical" /var/log/syslog

三、syslog 日志格式解析

典型格式:

Jan 21 10:32:15 hostname sshd[12345]: Failed password for root from 192.168.1.10 port 22 ssh2
字段 说明
时间 Jan 21 10:32:15
主机名 hostname
服务 sshd
PID 12345
消息 具体内容

四、常用分析思路(非常重要)

1️⃣ 先定时间范围

grep "Jan 21 10:" /var/log/syslog

2️⃣ 定位异常关键词

grep -E "error|fail|denied|timeout" /var/log/syslog

3️⃣ 按服务分类

awk '{print $5}' /var/log/syslog | sort | uniq -c | sort -nr

4️⃣ 分析攻击/安全事件

grep "Failed password" /var/log/secure
grep "Invalid user" /var/log/secure

5️⃣ 查看系统重启 / 崩溃

grep -i "reboot\|shutdown\|panic" /var/log/syslog
journalctl -b -1        # 上一次启动日志

五、典型场景分析示例

✅ 1. SSH 暴力破解

grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c

✅ 2. 磁盘错误

dmesg | grep -i "error\|io\|disk"
grep -i "read-only" /var/log/syslog

✅ 3. OOM(内存溢出)

grep -i "out of memory" /var/log/syslog
journalctl | grep -i oom

✅ 4. 服务启动失败

journalctl -u nginx --no-pager -n 50

六、使用 journalctl 的高级技巧

journalctl -p err        # 只看错误
journalctl --since "2025-01-20 08:00" --until "2025-01-20 12:00"
journalctl -u sshd -f

七、自动化分析工具(进阶)

工具 用途
logwatch 日志日报
rsyslog 日志转发
ELK (Elasticsearch + Logstash + Kibana) 大规模分析
fail2ban 自动封禁攻击 IP

八、分析时的好习惯 ✅

  • 先看 时间顺序
  • error / warning
  • 结合 dmesgjournalctl
  • 不要只看一条日志,要上下文

如果你愿意,可以:

  • 贴一段 真实 syslog
  • 或说明你具体想分析什么问题(宕机 / SSH / 磁盘 / 服务起不来)

我可以直接帮你逐行解读

《怎样分析linux syslog.doc》

下载本文的Word格式文档,以方便收藏与打印。