搭建链路追踪系统 Jaeger

搭建链路追踪系统 Jaeger

架构

架构图
jaeger-els

架构设计

在设计以 Jaeger 为中心的链路追踪系统时,我们采用微服务架构模式。

  • Jaeger 作为核心追踪系统,负责收集、存储和展示分布式追踪数据。
  • Elasticsearch 作为后端存储,提供数据的持久化和高效的搜索能力。
  • 系统还包括 Jaeger AgentCollectorQuery 服务和 UI 界面、Kibana

各服务功能

  • Jaeger Client:集成在应用程序中,自动收集追踪数据并发送给 Agent
  • Jaeger Agent:运行在每个服务节点上,接收来自 ClientSpan 数据,并批量发送到 Collector
  • Jaeger Collector:接收处理来自 Agent 的数据,并存储到 Elasticsearch
  • Elasticsearch:存储追踪数据,提供数据索引和搜索能力。
  • Jaeger Query:查询 Elasticsearch 中的追踪数据,供 UI 展示。
  • Jaeger UI:提供用户界面,使用户能够查询和分析追踪数据。
  • Kibana: 提供数据可视化能力,支持多种图表展示。

流程概述

流程包括:

  1. 服务发起调用,Jaeger Client 在服务端自动创建 Span
  2. Jaeger Agent 收集 Span 并批量发送给 Jaeger Collector
  3. Jaeger Collector 处理接收到的 Span 并存储到 Elasticsearch
  4. Jaeger Query 服务从 Elasticsearch 获取数据,提供给 Jaeger UI 展示。
  5. Jaeger UI 展示 Span 数据,用户可以查询和分析。
  6. Kibana 查看,过滤日志数据,提供数据可视化能力。

部署

部署策略

使用 Docker 部署 Jaeger 及相关服务。利用 Docker Compose 定义服务,实现一键部署和管理。Docker 镜像包括 Jaegerall-in-one 镜像和 Elasticsearch 镜像。Compose 文件配置服务间的网络和端口映射。

docker-compose.yaml

services:
  #jaeger链路追踪 — Jaeger for tracing
  jaeger:
    image: jaegertracing/all-in-one:1.42.0
    container_name: jaeger
    restart: always
    ports:
      - "5775:5775/udp"
      - "6831:6831/udp"
      - "6832:6832/udp"
      - "5778:5778"
      - "16686:16686"
      - "14268:14268"
      - "9411:9411"
    environment:
      - SPAN_STORAGE_TYPE=elasticsearch
      - ES_SERVER_URLS=http://root:passwd@elasticsearch:9200
      - LOG_LEVEL=debug
    networks:
      - default

networks:
  default:
    external:
      name: log-collect_looklook_net

Jaeger-ui

jaeger-ui
kibana-index

jaeger-index
jaeger-log

在这里插入图片描述

优劣势分析

使用 JaegerElasticsearch优势包括:

  • 高效性:Elasticsearch 提供快速的数据索引和查询能力。
  • 可扩展性JaegerElasticsearch 都能水平扩展,适应大规模分布式系统。
  • 易用性Docker 部署简化了环境配置和管理。
  • 可视化Jaeger UI 提供直观的追踪数据展示。

然而,也存在一些劣势

  • 资源消耗Elasticsearch 作为存储解决方案,可能会占用较多的存储和计算资源。
  • 复杂性Docker 容器管理和服务编排增加了系统的复杂性。
  • 性能调优:需要对 JaegerElasticsearch 进行适当的配置和调优,以满足性能要求。

综上所述,以 Jaeger 为中心,结合 Elasticsearch 存储的链路追踪系统,提供了一套完整的追踪解决方案,适用于需要高性能和可扩展性的分布式系统。通过 Docker 部署,我们能够实现快速、灵活的系统搭建和管理。

项目地址

Log-Collect

openui-svelte-build

openui-backend-go

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值