docker部署jaeger+es+kibana链路追踪

Docker下Jaeger部署文档

近来在学习到Jaeger链路追踪的时候,顺带学习了一下如何去部署Jaeger在服务器上

关于Jaeger

Jaeger 受到DapperOpenZipkin的启发,是由Uber Technologies作为开源发布的分布式跟踪系统。它用于监控和故障排除基于微服务的分布式系统,包括:

  • 分布式上下文传播
  • 分布式事务监控
  • 根本原因分析
  • 服务依赖分析
  • 性能/延迟优化

技术规格

先来看一下Jaeger的架构

在这里插入图片描述
在这里插入图片描述

你可以使用Kafka收集JaegerCollector的数据 经过flink处理

这里我使用的是 Jaeger-Collector + Jaeger-Query + Elasticsearch + kibana进行收集

看一下Jaeger-Collector + Jaeger-Query的定义

Collector

Jaeger收集器从 SDK 或 Jaeger代理接收跟踪,通过处理管道运行它们以进行验证和清理/丰富,并将它们存储在存储后端中。

Jaeger 内置了对多个存储后端的支持(请参阅部署),以及用于实现自定义存储插件的可扩展插件框架。

Query

Jaeger查询是一种服务,它公开用于从存储中检索跟踪的API,并托管用于搜索和分析跟踪的 Web UI。

开始部署

1.下载对应的docker镜像

这里通过dockerhub可以搜索到对应的镜像了

下载jaeger对应镜像

#collector镜像
docker pull jaegertracing/jaeger-collector:latest
#query镜像
docker pull jaegertracing/jaeger-query:latest

下载es+kibana对应镜像

#注意:这里我使用的是7.12.0版本 最好是使用7版本的es
docker search elasticsearch:7.12.0
docker pull kibana:7.12.0

我是通过查阅官方文档选择的7版本

自 0.6.0 起支持 Jaeger 支持的版本:5.x、6.x、7.x

Elasticsearch 版本自动从 root/ping 端点检索。基于此版本,Jaeger 使用兼容的索引映射和 Elasticsearch REST API。可以通过--es.version=标志显式提供版本。

除了安装和运行 Elasticsearch之外,Elasticsearch不需要初始化 。一旦运行,将正确的配置值传递给 Jaeger 收集器和查询服务。

2.启动对应的镜像

#1.创建一个docker网络
docker network create es-kibana
#2.启动es和kibana容器
#这里就不过多赘述 将es容器和kibana容器启动在同一个dokcer网络中即可

#3.启动Jaeger-Collector容器 随后我们讲暴露端口的作用
docker run -d --name jaeger-collector -p 14268:14268 -p 14269:14269 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://你自己的ip:9200 jaegertracing/jaeger-collector:latest

#4.启动Jaeger-Query容器 随后我们讲暴露端口的作用
docker run -d --name jaeger-query -p 16686:16686 -p 16687:16687 -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://你自己的ip:9200 jaegertracing/jaeger-query:latest

⭐️先启动es 再启动Jaeger的两个容器

2.1 Collector暴露的端口

在这里插入图片描述

这里摘自Jaeger的官方文档,有兴趣自己可以去研究一下Jaeger部署-collector

大概意思就是14268端口是用于接受外部client的数据,14269是用于监控健康指标的。

2.2 Query暴露的端口

在这里插入图片描述

这里同样摘自Jaeger官网,感兴趣的可以去研究一下Jaeger部署-query

大概意思就是16686端口是用于WebUI的,16687是用于监控健康指标的。

3.测试最终效果

3.1 准备测试文件
// 注意!这里仅是测试的一个函数 并不包括完全的过程,仅用于测试部署,不涉及链路追踪知识
func{
    // 父span
    newCtx, span := otel.Tracer(traceName).Start(ctx, "getUserID", trace.WithSpanKind(trace.SpanKindServer))
    defer span.End()

    fx.Parallel(
        func() {
            //子span一
            _, span := otel.Tracer(traceName).Start(newCtx, "getUserInfo", trace.WithSpanKind(trace.SpanKindServer))
            span.End()
        }, func() {
            //子span二
            _, span := otel.Tracer(traceName).Start(newCtx, "getMember", trace.WithSpanKind(trace.SpanKindServer))
            span.End()
        })
}

3.2查看效果

打开浏览器,在地址栏上输入服务器ip:16686访问

记得确保自己防火墙有开放端口!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H56yr8GU-1674735951271)(assets/image-20230126201901049.png)]
在这里插入图片描述

我们继续点开kibana查看数据是否发往es存储

浏览器输入你自己的ip:5601

我们继续点开kibana查看数据是否发往es存储

在这里插入图片描述

这是就可以看到数据成功发往es了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是在Docker上安装Elasticsearch和Kibana的步骤: 1. 安装DockerDocker Compose 2. 创建一个文件夹并在其中创建一个名为docker-compose.yml的文件 3. 在docker-compose.yml文件中添加以下内容: ``` version: '3' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es01 environment: - node.name=es01 - discovery.seed_hosts=es02 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es02 environment: - node.name=es02 - discovery.seed_hosts=es01 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata02:/usr/share/elasticsearch/data networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.15.1 container_name: kibana environment: ELASTICSEARCH_URL: http://es01:9200 ports: - 5601:5601 networks: - esnet volumes: esdata01: driver: local esdata02: driver: local networks: esnet: ``` 4. 保存并关闭文件 5. 在终端中导航到该文件夹并运行以下命令: ``` docker-compose up -d ``` 6. 等待一段时间,直到所有容器都启动并运行 7. 打开浏览器并输入以下地址来访问Kibana: ``` http://localhost:5601 ``` 8. 你现在可以开始使用Elasticsearch和Kibana进行数据分析和可视化了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值