分析 Linux syslog 是排查系统问题、了解系统运行状态的重要手段。下面从日志位置、工具、分析思路、常见场景几个方面系统讲解。
不同发行版略有差异:
| 系统 | 主要日志位置 |
|---|---|
| Debian / Ubuntu | /var/log/syslog |
| RHEL / CentOS | /var/log/messages |
| systemd 系统 | journalctl(不依赖文件) |
常见相关日志:
/var/log/
├── syslog
├── messages
├── auth.log # 登录、sudo、ssh
├── kern.log # 内核日志
├── cron.log # 定时任务
├── daemon.log # 守护进程
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog
tail -n 100 /var/log/syslog
tail -f /var/log/syslog
journalctl
journalctl -f
journalctl --since "2025-01-01 09:00" --until "2025-01-01 10:00"
journalctl -u sshd
journalctl -u nginx
journalctl -p err
优先级:
emergalertcriterrwarningnoticeinfodebug典型格式:
Jan 10 10:23:01 hostname sshd[1234]: Failed password for root from 1.2.3.4 port 22 ssh2
含义:
grep "error" /var/log/syslog
grep -i "fail" /var/log/syslog
grep "error" /var/log/syslog | wc -l
grep "sshd" /var/log/syslog
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
grep "sshd" /var/log/auth.log
关注:
Failed passwordAccepted passwordInvalid userlast reboot
journalctl -b -1 # 上一次启动
grep -i "error" /var/log/kern.log
dmesg | grep -i error
journalctl -u nginx --no-pager
grep -i "out of memory" /var/log/syslog
logrotate
✅ 先时间 → 定位问题发生时间
✅ 再服务 → 缩小范围
✅ 看关键字 → error / fail / denied
✅ 结合 dmesg / journalctl
✅ 关注重复日志(攻击或异常)
如果你愿意,可以把具体日志贴出来(或说明是哪种问题:宕机 / 网络 / SSH / 磁盘),我可以帮你逐行分析。