分析 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
- 结合
dmesg、journalctl - 不要只看一条日志,要上下文
如果你愿意,可以:
- 贴一段 真实 syslog
- 或说明你具体想分析什么问题(宕机 / SSH / 磁盘 / 服务起不来)
我可以直接帮你逐行解读。
