当前位置: 首页 > news >正文

grafana/lock-stack 日志 Pipeline 配置

前言

本文使用的是 grafana/loki-stack chart 抓取的 k8s 日志。其他 chart 配置都差不多。

日志问题

docker 容器运行时 pod 内原始日志

[cpu-4] Hello, 第 9788 次报时,时间:2025-08-01T06:35:42+0000
{"HOSTNAME":"cpu-4","level":"info","count":9788,"time":"2025-08-01T06:35:42+0000","msg":"Hello from cpu-4"}
{"HOSTNAME":"cpu-4","log":"{"HOSTNAME":"cpu-4","level":"info","count":9788,"time":"2025-08-01T06:35:42+0000","msg":"Hello from cpu-4"}"}
{"log":"Hi, 第    71461 次报时,Node: cpu-4, The current time is: 2025-08-01 14:47:47 +0800"}

docker 容器运行时被 docker 存放的日志,是一个带 json 格式(带 log stream time 字段)

{"log":"[cpu-4] Hello, 第 1061 次报时,时间:2025-08-01T08:14:58+0000\n","stream":"stdout","time":"2025-08-01T08:14:58.490561319Z"}
{"log":"{\"HOSTNAME\":\"cpu-4\",\"level\":\"info\",\"count\":1061,\"time\":\"2025-08-01T08:14:58+0000\",\"msg\":\"Hello from cpu-4\"}\n","stream":"stdout","time":"2025-08-01T08:14:58.490600455Z"}
{"log":"{\"HOSTNAME\":\"cpu-4\",\"log\":\"{\"HOSTNAME\":\"cpu-4\",\"level\":\"info\",\"count\":1061,\"time\":\"2025-08-01T08:14:58+0000\",\"msg\":\"Hello from cpu-4\"}\"}\n","stream":"stdout","time":"2025-08-01T08:14:58.490611277Z"}
{"log":"{\"log\":\"Hi, 第    76992 次报时,Node: cpu-4, The current time is: 2025-08-01 16:20:45 +0800\"}\n","stream":"stdout","time":"2025-08-01T08:20:45.91951057Z"}

如果是 containerd 容器运行时,会在原来的日志上加前缀 2025-08-01T11:20:10.111114661+08:00 stdout F 这里不再展示日志对比。

解决

编辑 values.yaml 文件添加如下配置

promtail:config:snippets:pipelineStages:# 参考 https://grafana.com/docs/loki/latest/send-data/promtail/configuration/?utm_source=chatgpt.com#docker- docker: {}# 参考 https://grafana.com/docs/loki/latest/send-data/promtail/configuration/?utm_source=chatgpt.com#cri- cri: {}

配置说明:
docker: {} 相当于如下配置:

- json:expressions:output: logstream: streamtimestamp: time
- labels:stream:
- timestamp:source: timestampformat: RFC3339Nano
- output:source: output

cri: {} 相当于如下配置:

- regex:expression: "^(?s)(?P<time>\\S+?) (?P<stream>stdout|stderr) (?P<flags>\\S+?) (?P<content>.*)$"
- labels:stream:
- timestamp:source: timeformat: RFC3339Nano
- output:source: content

具体配置参考官网

docker: {}
cri: {}

http://www.dtcms.com/a/309319.html

相关文章:

  • 性能监控体系:InfluxDB Grafana Prometheus
  • 【东枫科技】DreamHAT+
  • 3D 建模核心术语扫盲:拓扑、UV 展开、烘焙与 AO 贴图解析
  • 关于“PromptPilot” 之5 -标签词与标签动作的语言模型九宫格
  • c#中switch case语句的用法
  • Go语言的gRPC教程-拦截器
  • 向华为学习——IPD流程体系之IPD术语
  • 译 | BBC Studios团队:贝叶斯合成控制方法SCM的应用案例
  • k8s云原生rook-ceph pvc快照与恢复(上)
  • JavaScriptAJAX异步请求:XHR、Fetch与Axios对比
  • 学习笔记:封装和单继承
  • ls hgfs提示ls: cannot access ‘hgfs‘: Permission denied
  • Spring Boot 2.1.18 集成 Elasticsearch 6.6.2 实战指南
  • OneCode3.0 DSM:领域驱动设计驱动下的自定义枚举领域划分实践
  • CMake Debug/Release配置生成器表达式解析
  • 加密与安全
  • ACM SIGCOMM 2024论文精选-01:5G【Prism5G】
  • 让 OAuth 授权码流程更安全的 PKCE 技术详解
  • Unity相机控制
  • C#线程同步(三)线程安全
  • LT3045EDD#TRPBF ADI亚德诺半导体 线性稳压器 电源管理应用设计
  • PCB 控深槽如何破解 5G 基站 120℃高热魔咒?
  • Webhook是什么
  • 【Nginx反向代理】通过Nginx反向代理将多个后端server统一到同一个端口上的方法
  • 开源爬虫管理工具
  • [ Leetcode ]---快乐数
  • 【Redis】key的设计格式
  • Django模型查询与性能调优:告别N+1问题
  • 第三篇:几何体入门:内置几何体全解析
  • 【LLM】讲清楚MLA原理