温馨提示×

如何分析linux syslog

小樊
39
2026-07-29 20:22:20
栏目: 智能运维

分析 Linux syslog 是排查系统问题、了解系统运行状态的重要手段。下面从基本概念、日志位置、查看方法、常用分析技巧、典型问题排查几个方面系统讲解。


一、Syslog 基本概念

Syslog 是 Linux/Unix 系统中统一的日志系统,用于记录:

  • 内核消息
  • 系统服务日志
  • 应用程序日志
  • 网络、认证、硬件等信息

常见实现:

  • rsyslog(最常见)
  • syslog-ng
  • systemd-journald(新一代,配合 journalctl)

二、Syslog 文件位置

1️⃣ 传统 syslog 文件(rsyslog)

常见路径:

/var/log/messages      # 通用系统日志(CentOS/RHEL)
/var/log/syslog        # 通用系统日志(Ubuntu/Debian)
/var/log/secure        # 认证、SSH、sudo(RHEL)
/var/log/auth.log      # 认证日志(Ubuntu)
/var/log/kern.log      # 内核日志
/var/log/cron          # 定时任务
/var/log/daemon.log    # 守护进程

✅ 不同发行版路径略有不同


2️⃣ systemd 日志(journal)

/var/log/journal/

不直接可读,需要用 journalctl 查看。


三、查看 Syslog 的基础方法

1️⃣ 实时查看日志

tail -f /var/log/syslog

或:

journalctl -f

2️⃣ 查看指定时间日志

journalctl --since "2025-01-20 10:00" --until "2025-01-20 12:00"

普通文件:

grep "Jan 20 11:" /var/log/syslog

3️⃣ 按服务/程序过滤

rsyslog

grep sshd /var/log/auth.log

journalctl

journalctl -u sshd

4️⃣ 按优先级查看

Syslog 优先级:

emerg > alert > crit > err > warning > notice > info > debug
journalctl -p err

或查找错误:

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

四、Syslog 日志格式解析

典型格式:

Jan 20 11:23:45 hostname sshd[1234]: Failed password for root from 192.168.1.10 port 22 ssh2

含义:

部分 说明
Jan 20 11:23:45 时间
hostname 主机名
sshd 服务
1234 PID
内容 日志详情

五、常见分析场景

1️⃣ SSH 登录分析(安全)

✅ 成功登录:

grep "Accepted password" /var/log/auth.log

✅ 失败登录:

grep "Failed password" /var/log/auth.log

✅ 枚举攻击:

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

2️⃣ 系统启动问题

journalctl -b

查看上一次启动问题:

journalctl -b -1

3️⃣ 服务启动失败

journalctl -u nginx --no-pager

或:

grep nginx /var/log/syslog

4️⃣ 硬件 / 内核问题

dmesg | less

或:

journalctl -k

关注:

  • Out of memory
  • I/O error
  • CPU / 磁盘异常

5️⃣ 磁盘空间问题

grep "No space left" /var/log/syslog

六、高级分析技巧

1️⃣ 统计日志频率

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

2️⃣ 日志可视化(进阶)

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • rsyslog → 远程日志服务器

3️⃣ 检查日志是否被篡改

ls -l /var/log/syslog
stat /var/log/syslog

七、常见错误示例解读

日志内容 含义
Connection refused 服务未启动或端口不通
Permission denied 权限不足
No route to host 网络不可达
Out of memory 内存耗尽
segmentation fault 程序崩溃

八、分析思路总结(实战)

先定位时间
再定位服务
过滤错误级别
结合 dmesg / journalctl
关注重复、异常频率


如果你愿意,可以:

  • 贴一段 具体 syslog 内容
  • 或说明 你遇到的具体问题(宕机 / 登录失败 / 服务异常)

我可以帮你逐行分析日志并给出结论

0