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

这篇具有很好参考价值的文章主要介绍了docker部署jaeger+es+kibana链路追踪。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker下Jaeger部署文档

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

关于Jaeger

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

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

技术规格

  • Go 中实现的后端组件
  • React/Javascript 用户界面
  • 支持的存储后端:
    • Cassandra 3.4+
    • Elasticsearch 5.x, 6.x, 7.x
    • Kafka
    • 内存存储
    • 经过认证的 grpc 插件:
      • 带有 Promscale 的 PostgreSQL
      • ClickHouse

先来看一下Jaeger的架构

docker jaeger,云原生,docker,go,运维
docker jaeger,云原生,docker,go,运维

你可以使用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暴露的端口

docker jaeger,云原生,docker,go,运维

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

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

2.2 Query暴露的端口

docker jaeger,云原生,docker,go,运维

这里同样摘自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访问

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

docker jaeger,云原生,docker,go,运维
docker jaeger,云原生,docker,go,运维

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

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

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

docker jaeger,云原生,docker,go,运维

这是就可以看到数据成功发往es了文章来源地址https://www.toymoban.com/news/detail-614026.html

到了这里,关于docker部署jaeger+es+kibana链路追踪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(31)
  • docker 部署es、kibana详细教程

    1、下载elasticsearch镜像 docker pull elasticsearch:5.6.8 2、启动容器:注意必须配置启动内容大小,否则默认2g,会导致启动失败 3、可以先测试es是否可以正常使用 浏览器访问:http://服务器ip:9200/ 注意:如果是云服务器,还需要放开对应的端口。 4、开启远程连接:相关配置在容器中

    2024年02月08日
    浏览(31)
  • Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例,并做可视化UI界面展示(附源码)

    Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例(附源码)。 为了增强程序的可观测性,方便问题定位,在发起数据库操作请求时我们也可以调用代码统一集成链路跟踪的能力,Jaeger 是当今比较流行的选择。使用 Gorm 来将操作信息集成到 Jaeger 中。 全面

    2024年02月11日
    浏览(27)
  • docker-compose部署单机ES+Kibana

    本次elasticsearch和kibana版本为8.2.2 使用环境:centos7.9 本次记录还包括:安装elasticsearch中文分词插件和拼音分词插件 1、创建目录和填写配置 2、准备中文分词插件和拼音分词插件 2.1 获取中文和拼音分词插件 下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2

    2024年04月14日
    浏览(35)
  • 分布式链路追踪与云原生可观测性

    Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - Google Dapper,大规模分布式系统的跟踪系统 大规模分布式系统的跟踪系统:Dapper设计给我们的启示 阿里巴巴鹰眼技术解密 - 周小帆 京东云分布式链路追踪在金融场景的最佳实践 分布式链路追踪在字节跳动的实践 可视化全链路

    2024年04月11日
    浏览(27)
  • go_zero之健康监测&&链路追踪

    go-zero短从需求到上线的距离,是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 然而我们使用框架的时候,怎么才能知道我们启动的服务的健康状态和资源使用情况,当然框架给我们已经想好了解决方案。下

    2024年02月16日
    浏览(27)
  • Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

    目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue (1)主机 表1  主机 系统 架构 版本 IP 备注 Linux openEuler 22.03 LTS SP2 192.168.204.145(动态) 192.168.204.141(静态) 192.168.204.142(静态) docker 25.0.3 cpolar

    2024年04月17日
    浏览(32)
  • Docker 安装 nginx 和 tomcat 并部署 es + kibana 和可视化

             Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、 Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分

    2024年02月17日
    浏览(38)
  • Docker 安装 nginx 和 tomcat 并部署 es + kibana 和可视化(四)

             Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、 Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分

    2024年02月16日
    浏览(43)
  • 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

    服务链路追踪已成为不可或缺的一环 skywalking是一个优秀的 国产 开源框架,2015年由个人 吴晟 (华为开发者)开源 , 2017年加入apache 孵化器。 skywalking是分布式系统的应用 程序性能监视工具 ,专为微服务、云原生架构和基于容器化技术 (docker、K8s、Mesos)架构而设计,它是

    2023年04月08日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包