jaeger 使用ElasticSearch 作为后端存储
jaeger 支持es 作为后端存储,这样对于查询、以及系统扩展是比较方便的
使用docker-compose 运行
环境准备
参考项目: https://github.com/rongfengliang/nginx-opentracing-demo
- docker-compose file
version: '3'
services:
nginx:
image: opentracing/nginx-opentracing
networks:
trivial_example:
aliases:
- nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./jaeger-config.json:/etc/jaeger-config.json
expose:
- "8080"
ports:
- "8080:8080"
elasticsearch:
image: elasticsearch:5.6.12
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
volumes:
- ./es-data:/usr/share/elasticsearch/data
environment:
- transport.host=0.0.0.0
- http.cors.enabled=true
- http.cors.allow-origin="*"
- discovery.zen.minimum_master_nodes=1
networks:
trivial_example:
aliases:
- elasticsearch
app-service:
build:
context: .
dockerfile: ./Dockerfile
networks:
trivial_example:
aliases:
- app-service
expose:
- "9001"
ports:
- "9001:9001"
command:
- /app/server
- -collector_host
- jaeger
deps:
image: jaegertracing/spark-dependencies
environment:
- STORAGE=elasticsearch
- ES_NODES=http://elasticsearch:9200
networks:
trivial_example:
aliases:
- deps
jaeger:
image: jaegertracing/all-in-one:1.7
environment:
- COLLECTOR_ZIPKIN_HTTP_PORT=9411
- ES_SERVER_URLS=http://elasticsearch:9200
- SPAN_STORAGE_TYPE=elasticsearch
- ES_TAGS_AS_FIELDS=true
networks:
trivial_example:
aliases:
- jaeger
expose:
- "9411"
- "16686"
ports:
- "9411:9411"
- "16686:16686"
networks:
trivial_example: {}
- 说明
主要是通过环境变量指定存储类型以及es 服务器集群的地址,注意对于依赖关系需要有一个单独的服务
启动&&测试
- 启动
docker-compose up -d
- 效果
说明
关于依赖的显示,需要使用spark-dependencies处理,参考docker-compose file
同时需要配置为定时任务
参考资料
https://www.jaegertracing.io/docs/1.7/architecture/
https://www.jaegertracing.io/docs/1.7/deployment/
https://github.com/rongfengliang/nginx-opentracing-demo
https://github.com/jaegertracing/jaeger/blob/master/plugin/storage/es/README.md
https://hub.docker.com/r/jaegertracing/spark-dependencies/
https://my.oschina.net/u/2548090/blog/1821372