分析 Ubuntu 的 syslog 是排查系统问题(启动失败、服务异常、网络问题、硬件故障等)的关键技能。下面从 日志位置、查看方式、常用分析命令、典型场景 四个方面系统讲解。
Ubuntu 主要使用 rsyslog / journald 两种日志系统。
/var/log/syslog # 最常用(Ubuntu 默认)
/var/log/messages # 某些版本或配置才有
journalctl
✅ Ubuntu 16.04+ 默认 systemd + rsyslog 并存
tail -f /var/log/syslog
适合:
tail -n 100 /var/log/syslog
journalctl
journalctl -f
journalctl --since "2025-01-01 08:00:00"
journalctl --since "10 min ago"
journalctl -u ssh
journalctl -u nginx
journalctl -u docker
✅ 非常常用,比 /var/log/syslog 更精准
journalctl -b
查看上一次启动:
journalctl -b -1
典型 syslog 一行示例:
Jan 10 10:23:01 ubuntu sshd[1234]: Accepted password for root from 192.168.1.10 port 22
字段含义:
| 字段 | 说明 |
|---|---|
| Jan 10 10:23:01 | 时间 |
| ubuntu | 主机名 |
| sshd | 服务/进程 |
| 1234 | PID |
| 后续 | 日志内容 |
grep -i error /var/log/syslog
grep -i fail /var/log/syslog
grep sshd /var/log/syslog
grep 192.168.1.10 /var/log/syslog
grep -i error /var/log/syslog | wc -l
sed -n '/Jan 10 10:00/,/Jan 10 11:00/p' /var/log/syslog
journalctl -xb
重点看:
journalctl -u ssh
常见关键词:
dmesg | less
grep -i "disk\|error\|sda" /var/log/syslog
grep -i network /var/log/syslog
journalctl -u NetworkManager
Ubuntu 自动轮转日志:
/var/log/syslog
/var/log/syslog.1
/var/log/syslog.2.gz
查看配置:
cat /etc/logrotate.d/rsyslog
✅ 生产环境推荐:
grep + 时间dmesg✅ 安全分析:
grep -i "unauthorized\|denied\|refused" /var/log/syslog
如果你愿意,可以告诉我:
我可以 直接帮你定位问题。