Docker 部署 Jaeger

Jaeger 的主要作用如下:

  1. 分布式追踪

    Jaeger 是一个开源的分布式追踪系统,用于监控和排查微服务架构中的复杂问题。它可以跟踪请求在不同服务之间的传播路径,帮助开发者理解系统中各个组件之间的调用关系。

  2. 性能分析

    通过收集和分析请求的执行时间,Jaeger 可以帮助识别系统中的性能瓶颈,找出耗时较长的操作,从而优化系统性能。

  3. 故障排查

    当系统出现问题时,Jaeger 可以帮助快速定位故障源,追踪错误的传播路径,大大缩短问题排查的时间。

  4. 依赖分析

    Jaeger 可以生成服务依赖图,直观地展示系统中各个服务之间的调用关系,有助于理解和优化系统架构。

  5. 数据可视化

    Jaeger 提供了直观的 Web UI,可以以图形化的方式展示追踪数据,包括时间轴、调用树等,方便开发者分析和理解系统行为。

  6. 多语言支持

    Jaeger 支持多种编程语言,包括 Java、Go、Python、Node.js 等,可以在不同技术栈的项目中使用。

  7. 兼容性

    Jaeger 兼容 OpenTracing 和 OpenTelemetry 标准,可以与其他遵循这些标准的工具集成。

  8. 可扩展性

    Jaeger 的架构设计支持高可用性和可扩展性,适用于大规模分布式系统的监控需求。

总之,Jaeger 是一个强大的工具,可以帮助开发团队更好地理解、监控和优化复杂的分布式系统,提高系统的可观测性和可维护性。

Jaeger 官方提供了多个 Docker 镜像,其中最简单的是 all-in-one 镜像:

docker pull jaegertracing/all-in-one:latest

这个镜像在一个容器中运行所有 Jaeger 后端组件和 UI。

拉取镜像后,使用以下命令启动 Jaeger:

docker run --rm --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 14250:14250 \
  -p 14268:14268 \
  -p 14269:14269 \
  -p 9411:9411 \
  jaegertracing/all-in-one

主要端口说明:

  • 16686:Jaeger 查询 HTTP 端口(Web UI)
  • 14268:Jaeger Collector HTTP 端口
  • 14250:Jaeger Collector gRPC 端口

Web 端 Nginx 配置

在 Nginx 中添加以下伪静态配置:

location / {
  proxy_pass http://127.0.0.1:16686;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-NginX-Proxy true;
  real_ip_header X-Real-IP;
  proxy_connect_timeout 300;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  chunked_transfer_encoding off;
}

注意:为了确保样式和 JS 功能正常,请注释掉以下配置:

# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
# {
# 	expires      30d;
# 	error_log /dev/null;
# 	access_log /dev/null;
# }

# location ~ .*\.(js|css)?$
# {
#     expires      12h;
#     error_log /dev/null;
#     access_log /dev/null;
# }

完成以上步骤后,您就可以通过 Web 浏览器访问 Jaeger UI 了。

相关推荐
yaosheng_VALVE9 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
dami_king9 小时前
SSH特性|组成|SSH是什么?
运维·ssh·1024程序员节
一个通信老学姐5 天前
专业125+总分400+南京理工大学818考研经验南理工电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
sheng12345678rui5 天前
mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
游戏·电脑·dll文件·dll修复工具·1024程序员节
huipeng9266 天前
第十章 类和对象(二)
java·开发语言·学习·1024程序员节
earthzhang20216 天前
《深入浅出HTTPS》读书笔记(19):密钥
开发语言·网络协议·算法·https·1024程序员节
爱吃生蚝的于勒7 天前
计算机基础 原码反码补码问题
经验分享·笔记·计算机网络·其他·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(20):口令和PEB算法
开发语言·网络协议·算法·https·1024程序员节
一个通信老学姐8 天前
专业140+总分410+浙江大学842信号系统与数字电路考研经验浙大电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
earthzhang20218 天前
《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)
网络·网络协议·算法·https·1024程序员节