日志规范(K8s 结构化日志)

目标:采得到、查得快、能关联、合规可审计。所有日志统一为 JSON,且带可关联字段。

一、采集架构

复制代码
容器 stdout/stderr → Fluent Bit(DaemonSet) → Kafka(可选缓冲) → Loki → Grafana
  • 采集端:Fluent Bit(轻量,DaemonSet),自动附加 namespace/pod/container/node
  • 存储:Loki(与 Prometheus/Grafana 同栈,成本低);审计类日志可单独 ES。

二、日志格式(结构化 JSON)

必带字段:

json 复制代码
{
  "timestamp": "2026-09-17T11:00:00.123Z",
  "level": "ERROR",
  "service": "order-service",
  "env": "prod",
  "trace_id": "a1b2c3d4...",
  "msg": "create order failed",
  "error": "TimeoutException",
  "latency_ms": 3200,
  "user_id": "u_12345"
}
  • level:DEBUG / INFO / WARN / ERROR / FATAL
  • trace_id有请求上下文时必须带,用于和链路追踪关联下钻
  • 时间戳用 ISO8601 UTC

三、分级与打印纪律

  • 禁止打印敏感字段:手机号、身份证、token、密码、银行卡 → 采集端或代码层脱敏(如 138****8000)。
  • 控制频率:避免每秒上万条;批量/采样,必要时降级为计数。
  • 单行大小限制(如 < 16KB),避免撑爆采集。
  • ERROR 必须含可定位信息(trace_id + 关键参数 + 异常类型),不要只写 "error"。

四、留存与成本

级别 留存 说明
DEBUG 3--7 天 排障用,短留
INFO 15--30 天
ERROR/FATAL 60--90 天 便于复盘
审计日志 180 天+ 合规要求,独立存储防篡改
  • 冷热分层:热存 SSD/Loki,冷数据转对象存储降成本。
  • 索引按 service/env 分,避免互相影响。

五、K8s 场景要点

  • 只采 stdout/stderr(标准输出),不进容器里捞文件。
  • 用 Pod annotation 自动附加业务标签。
  • 多租户:按 namespace 路由到不同 Loki 流/索引。

六、日志告警

  • 错误率突增:同服务 ERROR 分钟级计数超阈值 → 告警(配合指标更准)。
  • 关键字:如 OutOfMemoryErrorConnection refusedPANIC
  • 关联:日志告警携带 trace_id,点击直接跳链路。
相关推荐
杨云龙UP1 小时前
DB2 HADR 主备切换实战:SQL1639N 认证问题、备库只读与双向 Takeover
linux·运维·数据库·db2·主备切换·角色互换
冬奇Lab1 小时前
DeepSeek Harness 系列(10):写一个完整的 dsh 插件——从需求到上线
人工智能·学习·开源
吴声子夜歌2 小时前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell
小小龙学IT2 小时前
Boost.PFR 开源结构体字段反射库深度解析
c++·开源
Akamai中国2 小时前
Akamai Valkey 托管数据库:企业 AI 的实时内存解决方案
人工智能·云计算·云服务
Dovis(誓平步青云)2 小时前
突破 32 位瓶颈:64 位 XID 如何化解事务号回卷危机
运维·服务器·人工智能·docker·容器
翼龙云_cloud2 小时前
腾讯云国际云服务器代理商:WorkBuddy评测 办公智能体落地90天实践复盘
服务器·云计算·腾讯云·workbuddy
yeyong2 小时前
是否可以在容器里监控GPU运行状态?
运维