在 Debian 系统中,syslog 是系统和服务的核心日志机制,主要用于记录系统运行状态、错误、警告等信息。下面从日志位置、查看方式、分析思路、常见工具、排错示例几个方面系统讲解如何分析 Debian 的 syslog。
Debian 通常使用 rsyslog 或 systemd-journald 来管理日志。
常见路径:
/var/log/syslog # 综合系统日志(最常见)
/var/log/messages # 部分发行版有,Debian 默认较少用
/var/log/auth.log # 认证相关(SSH、sudo、登录)
/var/log/kern.log # 内核日志
/var/log/daemon.log # 守护进程日志
如果
/var/log/syslog不存在,可能是使用了 systemd-journal。
Debian 10+ 默认使用 systemd,日志由 journald 管理:
/var/log/journal/ # 二进制日志(不建议直接查看)
tail -f /var/log/syslog
tail -n 100 /var/log/syslog
grep -i error /var/log/syslog
grep -i fail /var/log/syslog
grep sshd /var/log/auth.log
journalctl
journalctl -f
journalctl -u ssh.service
journalctl -u nginx.service
journalctl --since "2025-01-01 08:00" --until "2025-01-01 10:00"
journalctl -k
典型 syslog 格式:
Jan 20 10:32:01 debian sshd[1234]: Failed password for root from 192.168.1.10 port 22 ssh2
含义:
| 字段 | 含义 |
|---|---|
Jan 20 10:32:01 |
时间 |
debian |
主机名 |
sshd[1234] |
服务名 + PID |
Failed password ... |
日志内容 |
journalctl -b
查看本次启动日志,重点看:
failederrortimeoutgrep sshd /var/log/auth.log
常见关键字:
Failed passwordConnection closedInvalid usergrep -i "error\|fail\|I/O" /var/log/syslog
或:
dmesg | grep -i error
journalctl -u 服务名
例如:
journalctl -u nginx.service -xe
grep -i "out of memory" /var/log/syslog
lessless /var/log/syslog
awk 统计awk '{print $5}' /var/log/syslog | sort | uniq -c | sort -nr | head
logwatch(自动分析)apt install logwatch
logwatch --detail high
Debian 使用 logrotate:
/etc/logrotate.d/rsyslog
常见策略:
grep "Failed password" /var/log/auth.log | wc -l
journalctl --since "09:00" --until "10:00" | grep -i error
sudo 查看受保护日志如果你愿意,我可以:
只要把日志贴出来或说明问题即可。