跳转到内容

日志采集

日志最佳实践的目标是让故障发生时可以快速检索到“哪个服务、哪个请求、哪段代码、什么错误”。日志采集本身只是第一步,字段设计、索引和留存同样重要。


字段说明
timestamp日志时间,统一时区
leveldebug、info、warn、error
service服务名
namespaceKubernetes 命名空间
podPod 名称
trace_id请求链路 ID
request_id单次请求 ID
message日志正文

应用优先输出 JSON 结构化日志,便于日志平台解析和索引。


  • 业务日志优先输出到 stdout/stderr。
  • 必须写文件时,路径、滚动方式和采集规则一起管理。
  • 不采集敏感字段,例如密码、Token、完整身份证号。
  • debug 日志默认不长期保存。
  • error 日志建议建立独立告警和检索入口。

日志类型建议
debug短期保留或按需开启
info按业务重要性设置 7-30 天
error保留更久,支持复盘和审计
审计日志按合规要求保留

日志成本通常来自写入量、索引量、存储和查询。索引字段越多越好用,但成本也越高,需要按查询场景设计。


  • 所有告警都附带日志查询条件。
  • 所有入口请求都带 trace_idrequest_id
  • 业务错误码和下游依赖错误单独成字段。
  • 发布版本号写入日志字段,方便定位发布相关故障。