日志规范与成本治理:日志平台的第二课#
搭好 ELK 只是第一课。第二课是:日志量失控了怎么办。我见过团队每天产生 5TB 日志、月度存储成本 20 万——其中 80% 是没人看的。日志治理 = 规范(写什么)+ 成本(存多少)+ 可用(找得到)。
一、先看成本是怎么爆的#
二、日志规范(写什么)#
级别规范#
| 级别 |
用在哪 |
示例 |
| DEBUG |
本地调试 |
参数细节 |
| INFO |
关键业务事件 |
下单成功、用户注册 |
| WARN |
可恢复异常 |
重试、限流触发 |
| ERROR |
需要人工关注 |
调用失败、数据不一致 |
规范:
字段规范(结构化)#
1
2
3
4
5
6
7
8
9
10
|
{
"ts": "2026-05-10T10:00:00",
"level": "ERROR",
"service": "delivery-service",
"trace_id": "abc123",
"user_id": "u-123",
"code": "ORDER_PAY_TIMEOUT",
"msg": "订单支付超时",
"duration_ms": 2300
}
|
统一字段:时间/级别/服务/trace_id/业务 ID/错误码/消息——没有统一字段,检索靠猜。
三、成本治理(存多少)#
分层存储#
采样与裁剪#
预算制#
四、日志平台的高阶能力#
五、踩坑记录#
- 循环打日志:
for i := range 10000 { log.Debug(i) } → 日志爆炸 → 循环里只打"最终结果",或限频(每 100 次一条)
- 打印敏感数据:日志里出现用户手机号 → 合规事故 → 统一脱敏过滤器
- ERROR 不带上下文:只报"调用失败",不知道哪个订单哪个用户 → 规范字段 + 必填校验
- 保留期一刀切:全量 180 天 → 存储爆 → 分层:ERROR 全保留,INFO 降采样
六、日志治理的投入产出#
日志治理的核心认知:
- 规范先行:级别、字段、内容三个规范,让日志"可检索可行动"
- 成本分层:热/温/冷三层存储 + 采样裁剪 + 预算制
- 日志是给排查用的,不是给"安心"用的:没人看的日志 = 浪费
- 治理指标:检索效率 + 存储成本 + 告警准确率
日志的第一课是"怎么收",第二课是"怎么少收"。 会写日志是本能,会治理日志才是工程能力。
微信公众号「福清而不淡」
后端架构 · AI 工程 · 云原生的一线实践,扫码关注,不错过更新。
本文已同步发布到公众号,欢迎留言交流。