总体评价
对入门者而言,Debian 的日志体系是可用且相对友好的:一方面保留了传统的可读文本日志(如 /var/log/syslog、/var/log/auth.log、/var/log/kern.log),另一方面配合 systemd-journald 与 journalctl 提供结构化的查询能力;再叠加 logrotate 做自动轮转,整体学习与上手门槛较低。与 Red Hat 系相比,路径与用途的对应关系清晰,便于按图索骥定位问题。
新手友好的体现
- 日志集中、用途明确:常见文件如 /var/log/syslog(系统综合)、/var/log/auth.log(认证与 sudo)、/var/log/kern.log(内核与驱动)、/var/log/dpkg.log(软件包变更)等,便于快速定位方向。配合 tail -f /var/log/syslog、grep “error” /var/log/syslog 等基础命令即可完成大多数日常排查。
- 结构化查询更简单:使用 journalctl 可按启动、服务、时间、优先级过滤,如 journalctl -b(本次启动)、journalctl -u nginx、journalctl -f(实时)、journalctl -p err(仅错误级),输出字段清晰,便于逐步缩小范围。
- 自动维护不费力:默认启用 logrotate 做按周期轮转、压缩与保留,避免日志无限增长导致磁盘被占满,减少新手维护负担。
可能遇到的不适与应对
- 日志量大、信息“杂”:先用优先级与时间窗收敛,如 journalctl -p err -b 或 journalctl --since “2025-12-28 10:00:00”;再用 grep/awk 精准筛选关键字(如 error、failed)。
- 传统文件与 journald 并存:若不确定用哪个,优先用 journalctl 做统一查询;确需文本文件时,直接查看 /var/log/ 下的对应文件(如 syslog、auth.log)。
- 服务没写日志或看不到输出:确认服务是否由 systemd 托管(用 systemctl status 服务名),再用 journalctl -u 服务名 查看;必要时检查服务自身的日志配置与权限。
- 磁盘被日志占满:检查 /var/log 使用率(如 df -h /var/log),确认 logrotate 正常运行;必要时手动触发轮转或清理旧日志(注意保留最近的归档)。
新手常用命令清单
| 目的 |
命令示例 |
| 实时看系统日志 |
tail -f /var/log/syslog |
| 查本次启动的内核日志 |
journalctl -k -b |
| 查某服务的日志 |
journalctl -u nginx -f |
| 按时间过滤 |
journalctl --since “2025-12-28 09:00:00” --until “10:00:00” |
| 仅看错误级 |
journalctl -p err |
| 查认证相关事件 |
grep “Failed password” /var/log/auth.log |
| 统计失败登录来源 |
grep “Failed password” /var/log/auth.log |
| 查看包管理历史 |
less /var/log/apt/history.log |
| 以上命令覆盖日常 90% 的排查场景,配合管道与文本工具可进一步提炼关键信息。 |
|