Jaeger容器化部署

概述

[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容器化部署的基本流程: 分为测试环境和正式环境两种方式。

All-In-One测试环境部署

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

Production环境部署

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

猜你喜欢

转载自www.cnblogs.com/battlescars/p/jaeger_deployment.html