基础设施、云与 DevOps · 综合

日志:存得对,找得快

一句话: 好的日志是结构化的、带请求ID的、保留时长明确的,并且不含没有理由出现在那里的个人信息。

结构

用字段,不用句子:时间、级别、服务、版本、请求标识、脱敏后的用户标识,以及事件。这样才能筛选和聚合,而不是在文本里搜。

级别要用得一致:需要关注的用error,异常但已被处理的用warning,业务事件用info,debug只在开发环境。

保留多少

日志是一笔可观的成本。详细日志短期保留、聚合数据长期保留,合规需要的放进便宜的归档。这件事定一次,否则它会自己决定——而且是往上涨。

不该写什么

密码、令牌、卡号、身份证号,以及私信内容。日志在各方面都是一个数据库,只是管控更少——所以从日志泄漏格外常见。

深入一层

加一个在入口处生成、传递给所有组件并返回给用户的请求标识。当客户带着一个标识来报错时,排查就能从正确的那一行开始——而不是围着一个估算的时间点去扫几百万行。