[jaeger](https://www.jaegertracing.io/docs/1.16/architecture/)是由uber开源的分布式追踪系统,一套完整的jager追踪系统包括jaeger-client、jaeger-agent、jaeger-collector、database和jaeger-query ui等基本组件,如下图架构图所示,jaeger客户端支持多种语言,jaeger-agent与客户端进行数据交互,并把数据push到jaeger-collector组件,jaeger-collector将数据持久化到数据库,jaeger-query是一个web服务,用于展示跟踪链路。以下为jaeger容器化部署的基本流程: 分为测试环境和正式环境两种方式。
run.sh: 在某台服务器假设ip为10.11.0.10上运行脚本
#!/usr/bin/env bash
docker run -d --name jaeger \
-e collector_zipkin_http_port=9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 9411:9411 \
--restart=always \
jaegertracing/all-in-one:1.15
docker-compose.yml: 在某台服务器假设ip为10.11.0.10上,部署除jaeger-agent以外的所有组件
version: '2' services: jaeger-collector: container_name: jaeger-collector image: jaegertracing/jaeger-collector command: ["--cassandra.keyspace=jaeger_v1_dc1", "--cassandra.servers=cassandra", "--collector.zipkin.http-port=9411"] ports: - "14269" - "14268:14268" - "14267" - "14250:14250" - "9411:9411" restart: always depends_on: - cassandra-schema jaeger-query: container_name: jaeger-query image: jaegertracing/jaeger-query command: ["--cassandra.keyspace=jaeger_v1_dc1", "--cassandra.servers=cassandra"] ports: - "16686:16686" - "16687" restart: always depends_on: - cassandra-schema cassandra: container_name: cassandra image: cassandra:3.11 volumes: - /data:/var/lib/cassandra restart: always cassandra-schema: container_name: cassandra-schema image: jaegertracing/jaeger-cassandra-schema depends_on: - cassandra
run_agent.sh: 在所有需要追踪的服务所在的服务器部署jaeger-agent
#!/usr/bin/env bash docker run -d --name jaeger-agent \ -p 5775:5775/udp \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ --restart=always \ jaegertracing/jaeger-agent --reporter.grpc.host-port=10.11.0.10:14250
访问jaeger web ui通过http://10.11.0.10:16686
如对本文有疑问, 点击进行留言回复!!
网友评论