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 了。

相关推荐
清风-云烟15 小时前
使用redis-cli命令实现redis crud操作
java·linux·数据库·redis·spring·缓存·1024程序员节
Joeysoda19 小时前
Java数据结构 (链表反转(LinkedList----Leetcode206))
java·linux·开发语言·数据结构·链表·1024程序员节
比特在路上1 天前
StackOrQueueOJ3:用栈实现队列
c语言·开发语言·数据结构·1024程序员节
0xCC说逆向2 天前
Windows图形界面(GUI)-QT-C/C++ - Qt键盘与鼠标事件处理详解
c语言·开发语言·c++·windows·qt·win32·1024程序员节
明明真系叻4 天前
2025.1.18机器学习笔记:PINN文献精读
人工智能·笔记·深度学习·机器学习·1024程序员节
0xCC说逆向5 天前
Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用
c语言·开发语言·c++·windows·qt·win32·1024程序员节
明明真系叻7 天前
2025.1.12机器学习笔记:GAN文献阅读
人工智能·笔记·深度学习·机器学习·1024程序员节
比特在路上8 天前
OJ12:160. 相交链表
c语言·数据结构·算法·链表·1024程序员节
earthzhang20219 天前
《深入浅出HTTPS》读书笔记(28):DSA数字签名
开发语言·网络协议·算法·https·1024程序员节
比特在路上9 天前
初阶数据结构【栈及其接口的实现】
c语言·开发语言·数据结构·1024程序员节