分析 Linux syslog 是排查系统问题、了解系统运行状态的重要手段。下面从基本概念、日志位置、查看方法、常用分析技巧、典型问题排查几个方面系统讲解。
Syslog 是 Linux/Unix 系统中统一的日志系统,用于记录:
常见实现:
rsyslog(最常见)syslog-ngsystemd-journald(新一代,配合 journalctl)常见路径:
/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 # 守护进程
✅ 不同发行版路径略有不同
/var/log/journal/
不直接可读,需要用 journalctl 查看。
tail -f /var/log/syslog
或:
journalctl -f
journalctl --since "2025-01-20 10:00" --until "2025-01-20 12:00"
普通文件:
grep "Jan 20 11:" /var/log/syslog
grep sshd /var/log/auth.log
journalctl -u sshd
Syslog 优先级:
emerg > alert > crit > err > warning > notice > info > debug
journalctl -p err
或查找错误:
grep -i "error\|fail\|critical" /var/log/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 |
| 内容 | 日志详情 |
✅ 成功登录:
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
journalctl -b
查看上一次启动问题:
journalctl -b -1
journalctl -u nginx --no-pager
或:
grep nginx /var/log/syslog
dmesg | less
或:
journalctl -k
关注:
grep "No space left" /var/log/syslog
awk '{print $5}' /var/log/syslog | sort | uniq -c | sort -nr | head
ls -l /var/log/syslog
stat /var/log/syslog
| 日志内容 | 含义 |
|---|---|
Connection refused |
服务未启动或端口不通 |
Permission denied |
权限不足 |
No route to host |
网络不可达 |
Out of memory |
内存耗尽 |
segmentation fault |
程序崩溃 |
✅ 先定位时间
✅ 再定位服务
✅ 过滤错误级别
✅ 结合 dmesg / journalctl
✅ 关注重复、异常频率
如果你愿意,可以:
我可以帮你逐行分析日志并给出结论。