日志规范(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 分钟级计数超阈值 → 告警(配合指标更准)。
  • 关键字:如 OutOfMemoryError、Connection refused、PANIC。
  • 关联:日志告警携带 trace_id,点击直接跳链路。
相关推荐
在角落发呆4 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
百度一下吧5 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学5 小时前
Docker镜像导入、容器启动
linux·运维·docker
文慧的科技江湖5 小时前
2026年10月7日充电桩行业招投标早报:软件在招标里是附件,在场景征集里是主角 | 慧知开源充电桩平台
开源·新能源·充电桩·招投标·车网互动
回眸&啤酒鸭5 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间6 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
冬奇Lab7 小时前
一天一个开源项目(第231篇):MiniMind —— 花3块钱、2小时,从零训练一个 64M 参数的大语言模型
人工智能·开源·资讯
资料库017 小时前
Linux 8个常见运维故障排查
java·linux·运维
IT大白鼠8 小时前
DeepSeek Harness 详解开源插件化 AI Agent 运行时:架构、模式、安装与生态
人工智能·架构·开源
机核研创社8 小时前
睡裤明橡筋自动化选型指南与落地四步走
运维·自动化