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 分钟前
怎么理解ES6 Proxy
1024程序员节
憧憬一下16 分钟前
input子系统的框架和重要数据结构详解
arm开发·嵌入式·c/c++·1024程序员节·linux驱动开发
三日看尽长安花25 分钟前
【Tableau】
1024程序员节
sswithyou1 小时前
Linux的调度算法
1024程序员节
武子康1 小时前
大数据-187 Elasticsearch - ELK 家族 Logstash Filter 插件 使用详解
大数据·数据结构·elk·elasticsearch·搜索引擎·全文检索·1024程序员节
互联网杂货铺1 小时前
Python测试框架—pytest详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·1024程序员节
GDAL2 小时前
JavaScript正则表达式利器:exec()方法深度解析与应用实例
正则表达式·1024程序员节
2401_857610032 小时前
植物健康,Spring Boot来助力
1024程序员节
阿乾之铭2 小时前
Spring Boot框架中的IO
java·spring boot·log4j·1024程序员节
百流2 小时前
Pyspark中pyspark.sql.functions常用方法(4)
1024程序员节