Debian Minimal 系统日志分析实操指南
一 核心工具与日志位置
- 日志集中目录为 /var/log,常见文件与作用如下:
- /var/log/syslog:系统通用日志(服务启动、运行、计划任务等)
- /var/log/auth.log:认证与安全事件(SSH 登录、sudo 使用等)
- /var/log/kern.log:内核日志(驱动、硬件、内核报错)
- /var/log/dpkg.log:软件包安装、升级、卸载记录
- 系统使用 systemd 时,优先用 journalctl 集中查询;Minimal 默认精简,但常见日志文件与 journal 均可用。必要时可用 less/more 分页查看大文件。
二 快速定位与分析常用命令
- 实时查看最新日志
- 查看系统日志:tail -f /var/log/syslog
- 查看 systemd 日志:journalctl -f
- 按服务与优先级过滤
- 指定服务:journalctl -u ssh(或 -u nginx)
- 指定优先级:journalctl -p err(仅错误及以上)
- 按时间范围检索
- 指定区间:journalctl --since “2025-09-01” --until “2025-09-21”
- 当天/昨天:journalctl --since today / –since yesterday
- 查看内核与启动
- 内核环缓冲:dmesg;实时:dmesg -w
- 本次启动日志:journalctl -b;内核视角:journalctl -k
- 关键字与上下文定位
- 搜索错误:grep -i “error” /var/log/syslog
- 显示上下文:grep -C 5 “error” /var/log/syslog
- 递归搜索:grep -r “failed” /var/log/
- 压缩日志检索
- 查看轮转压缩文件:zgrep “error” /var/log/syslog.2.gz
- 文本处理与统计
- 统计错误数:awk ‘/error/ {count++} END {print “Total errors:”, count}’ /var/log/syslog
- 高频来源 IP(auth.log 常见第 11 列为源 IP):awk ‘{print $11}’ /var/log/auth.log | sort | uniq -c | sort -nr | head
- 权限提示
- 涉及认证与安全类日志(如 /var/log/auth.log)通常需要 sudo。
三 常见场景与命令清单
| 场景 |
推荐命令 |
| SSH 暴力登录排查 |
**sudo grep “Failed password” /var/log/auth.log |
| 某服务启动失败定位 |
journalctl -u nginx -b --since today -p err |
| 内核驱动报错 |
**dmesg -T |
| 某时间段内的系统错误 |
journalctl --since “2025-09-01 00:00:00” --until “2025-09-01 12:00:00” -p err |
| 历史压缩日志中的异常 |
zgrep -i “panic|segfault” /var/log/syslog.*.gz |
| 软件包变更审计 |
grep “install|upgrade|remove” /var/log/dpkg.log |
| 说明:Minimal 默认无图形化工具,以上命令均可在终端完成;必要时可安装 gnome-system-log 等图形查看器。 |
|
四 日志轮转与空间管理
- 使用 logrotate 自动轮转、压缩与清理(推荐)
- 常用配置示例:rotate 7、daily、compress、delaycompress、missingok、notifempty、create 640 root adm
- 手动触发一次轮转:sudo logrotate /etc/logrotate.conf
- 使用 journalctl 管理 journal 日志
- 保留最近 3 天:sudo journalctl --vacuum-time=3d
- 按大小清理:sudo journalctl --vacuum-size=100M
- 风险提示
- 清理前确认不再需要的历史日志;生产环境建议先备份关键日志,再执行清理。