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

分布式go项目-搭建监控和追踪方案补充-ELK日志收集

在分布式Go项目中,ELK(Elasticsearch + Logstash + Kibana)与追踪(Tracing)的结合,核心是通过日志与追踪数据的关联(基于trace_id),实现“从日志定位追踪链路”和“从追踪链路回溯日志”的双向分析能力。以下是具体实现方案:

一、ELK与追踪结合的核心逻辑

ELK收集追踪相关日志的核心是:

  1. 日志嵌入追踪标识:Go服务的每条日志都包含trace_idspan_id(与OpenTelemetry追踪数据关联)
  2. ELK全链路收集:Filebeat收集包含追踪标识的日志,经Logstash处理后存入Elasticsearch
  3. Kibana关联分析:通过trace_id在Kibana中聚合同一追踪链路的所有日志,并与Jaeger追踪数据联动

整体流程:

[Go服务A] → 输出含trace_id的日志 → [Filebeat] → [Logstash] → [Elasticsearch] → [Kibana]│
[Go服务B] → 输出含相同trace_id的日志 → ... ─────────────────────┘│
[Jaeger追踪数据] ────────────────────────────────────────────────┼→ 关联分析(同一trace_id)

二、关键实现步骤

1. Go服务日志嵌入追踪标识

在Go服务中,通过OpenTelemetry从上下文(context.Context)中提取trace_idspan_id,并通过结构化日志库(如zap)写入日志。

2. Filebeat收集含追踪标识的日志

Filebeat部署在每个服务节点,监控Go服务输出的日志文件(含trace_id),并转发到Logstash或直接到Elasticsearch。

Filebeat配置(filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/app.log  # 监控Go服务的日志文件路径tags: ["go-service"]  # 标记日志类型json.keys_under_root: true  # 解析JSON日志,将字段提升到根级别json.overwrite_keys: true   # 覆盖默认字段(如@timestamp)# 输出到Logstash(如需处理日志)或直接到Elasticsearch
output.logstash:hosts: ["logstash:5044"]  

文章转载自:

http://Pq081wwx.gnjtg.cn
http://48kPr3pY.gnjtg.cn
http://OTjR0Who.gnjtg.cn
http://jeB5MqJV.gnjtg.cn
http://s4b4m3xh.gnjtg.cn
http://M7fvYgli.gnjtg.cn
http://Nt3qxEGp.gnjtg.cn
http://nCdHMvSM.gnjtg.cn
http://WZutKIiI.gnjtg.cn
http://USv6Xc1b.gnjtg.cn
http://434xbIxe.gnjtg.cn
http://iwEUnnM3.gnjtg.cn
http://xwAJaifM.gnjtg.cn
http://hZVinroR.gnjtg.cn
http://hHi4W9gA.gnjtg.cn
http://hO5VTPfG.gnjtg.cn
http://gneE70ri.gnjtg.cn
http://SMmlYXfR.gnjtg.cn
http://fo0gpnFq.gnjtg.cn
http://m7IHuuxJ.gnjtg.cn
http://oXPNajzp.gnjtg.cn
http://N5Ai7jJv.gnjtg.cn
http://UqTkeBbC.gnjtg.cn
http://4kRJFezE.gnjtg.cn
http://TnqOOsXL.gnjtg.cn
http://dzijSdW0.gnjtg.cn
http://8egBFAVL.gnjtg.cn
http://YROVz5Nz.gnjtg.cn
http://EpfEyD9d.gnjtg.cn
http://sbkWdh5C.gnjtg.cn
http://www.dtcms.com/a/370239.html

相关文章:

  • OpenLayers常用控件 -- 章节七:测量工具控件教程
  • nginx常用命令(备忘)
  • Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标
  • 【FastDDS】XML profiles
  • 《sklearn机器学习——绘制分数以评估模型》验证曲线、学习曲线
  • Gitea:轻量级的自托管Git服务
  • 【CF】Day139——杂题 (绝对值变换 | 异或 + 二分 | 随机数据 + 图论)
  • ElementUI之Upload 上传的使用
  • 在线教育系统源码选型指南:功能、性能与扩展性的全面对比
  • Web漏洞挖掘篇(二)—信息收集
  • 从零开始的python学习——文件
  • ThreadLocal 深度解析:原理、应用场景与最佳实践
  • Error metrics for skewed datasets|倾斜数据集的误差指标
  • 前端错误监控:如何用 Sentry 捕获 JavaScript 异常并定位源头?
  • 9.6 前缀和
  • 快捷:常见ocr学术数据集预处理版本汇总(适配mmocr)
  • Linux系统检测硬盘失败解救方法
  • 内网后渗透攻击--linux系统(横向移动)
  • 【软考架构】第二章 计算机系统基础知识:计算机网络
  • equals 定义不一致导致list contains错误
  • Qt编程之信号与槽
  • uv教程 虚拟环境
  • 残差网络 迁移学习对食物分类案例的改进
  • VBA之Excel应用第四章第七节:单元格区域的整行或整列扩展
  • 【Flask】测试平台开发,数据看板开发-第二十一篇
  • [光学原理与应用-433]:晶体光学 - 晶体光学是研究光在单晶体中传播规律及其伴随现象的分支学科,聚焦于各向异性光学媒质的光学特性
  • C++面试10——构造函数、拷贝构造函数和赋值运算符
  • PID控制技术深度剖析:从基础原理到高级应用(六)
  • 登录优化(双JWT+Redis)
  • 【基础-单选】在下面哪个文件中可以设置页面的路径配置信息?