在 Debian 系统中,syslog(系统日志)通常由 rsyslog 或 systemd-journald 负责。下面从日志位置、常用工具、分析思路、实战示例几个方面系统讲解如何分析 Debian 的 syslog。
如果使用 rsyslog(最常见):
/var/log/syslog # 综合系统日志(最常用)
/var/log/messages # 部分系统可能没有
/var/log/auth.log # 认证相关(SSH、sudo、登录)
/var/log/kern.log # 内核日志
/var/log/cron.log # 定时任务
查看是否使用 rsyslog:
dpkg -l | grep rsyslog
Debian 10+ 默认使用 systemd:
journalctl
日志存储在:
/var/log/journal/
tail -f /var/log/syslog
或:
journalctl -f
tail -n 100 /var/log/syslog
journalctl --since "2025-01-01 08:00:00" --until "2025-01-01 10:00:00"
journalctl -u nginx
journalctl -u ssh
journalctl -u docker
grep nginx /var/log/syslog
grep "192.168.1.10" /var/log/syslog
grep "sshd" /var/log/auth.log
常见关键词:
Failed passwordAccepted passwordInvalid user查看暴力破解:
grep "Failed password" /var/log/auth.log | wc -l
journalctl -b # 本次启动
journalctl -b -1 # 上一次启动
查看启动失败服务:
systemctl --failed
dmesg | less
grep -i error /var/log/kern.log
journalctl | grep -i "I/O error"
grep -i network /var/log/syslog
grep -c "error" /var/log/syslog
awk '/Jan 20 10:/ {print}' /var/log/syslog
grep "nginx" /var/log/syslog /var/log/auth.log
journalctl -u ssh > ssh.log
Debian 默认使用 logrotate:
/etc/logrotate.d/rsyslog
查看配置:
cat /etc/logrotate.d/rsyslog
| 工具 | 用途 |
|---|---|
grep / awk / sed |
基础分析 |
journalctl |
systemd 日志 |
lnav |
日志浏览器(强烈推荐) |
multitail |
多日志实时查看 |
ELK / Graylog |
大规模日志 |
安装 lnav:
apt install lnav
lnav /var/log/syslog
“时间 → 服务 → 关键词 → 关联日志”
error / fail / timeout / deniedauth.log / kern.log / journalctl如果你愿意,可以:
cat /etc/debian_version)我可以帮你逐行分析日志。