日志是后端系统运维和排障的核心工具。一个完善的日志体系不仅能记录问题,还能支撑监控、审计、告警。
1. 日志的分类
- 应用日志:记录系统运行情况,如访问日志、错误日志。
- 业务日志:记录与业务相关的关键操作,例如订单状态变化。
- 安全日志:记录登录、鉴权、敏感操作,满足合规需求。
- 审计日志:用于追踪“谁在什么时间做了什么操作”。
2. 日志的级别(常见规范)
- DEBUG:开发调试使用,生产环境可关闭。
- INFO:关键流程的正常运行信息。
- WARN:潜在问题,但不影响主流程。
- ERROR:错误事件,需要及时排查。
- FATAL:系统级故障,可能导致服务不可用。
3. 日志采集与存储
- 本地文件:适合小型项目,简单但难以集中管理。
- 集中式采集:通过 Filebeat/Fluentd 将日志采集到日志中心。
- 存储:常见方案是 ELK(Elasticsearch + Logstash + Kibana)。
4. 日志查询与分析
- Kibana 提供全文搜索、图表分析。
- 可按时间、用户 ID、请求路径快速定位问题。
- 支持告警规则,例如 5 分钟内 ERROR 超过 100 次触发告警。
5. 最佳实践
- 日志要结构化,推荐 JSON 格式,方便解析。
- 日志量大时要做好分片与归档,避免磁盘爆满。
- 对敏感信息(密码、身份证号)要脱敏存储。
- 设置日志采样,避免高并发场景下日志 IO 成为瓶颈。
结论:日志不仅是排错工具,更是系统可观测性的重要组成。设计良好的日志体系,能让系统在复杂环境中依然可控。