赞
踩
近来在学习到Jaeger链路追踪的时候,顺带学习了一下如何去部署Jaeger在服务器上
Jaeger 受到Dapper和OpenZipkin的启发,是由Uber Technologies作为开源发布的分布式跟踪系统。它用于监控和故障排除基于微服务的分布式系统,包括:
你可以使用Kafka收集JaegerCollector的数据 经过flink处理
这里我使用的是 Jaeger-Collector + Jaeger-Query + Elasticsearch + kibana进行收集
Jaeger收集器从 SDK 或 Jaeger代理接收跟踪,通过处理管道运行它们以进行验证和清理/丰富,并将它们存储在存储后端中。
Jaeger 内置了对多个存储后端的支持(请参阅部署),以及用于实现自定义存储插件的可扩展插件框架。
Jaeger查询是一种服务,它公开用于从存储中检索跟踪的API,并托管用于搜索和分析跟踪的 Web UI。
这里通过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 收集器和查询服务。
#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的两个容器
这里摘自Jaeger的官方文档,有兴趣自己可以去研究一下Jaeger部署-collector
大概意思就是14268
端口是用于接受外部client的数据,14269
是用于监控健康指标的。
这里同样摘自Jaeger官网,感兴趣的可以去研究一下Jaeger部署-query
大概意思就是16686
端口是用于WebUI的,16687
是用于监控健康指标的。
// 注意!这里仅是测试的一个函数 并不包括完全的过程,仅用于测试部署,不涉及链路追踪知识 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() }) }
打开浏览器,在地址栏上输入服务器ip:16686
访问
记得确保自己防火墙有开放端口!
我们继续点开kibana查看数据是否发往es存储
浏览器输入你自己的ip:5601
我们继续点开kibana查看数据是否发往es存储
这是就可以看到数据成功发往es了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。