我尝试执行此docker命令以使用Elasticsearch设置Jaeger Agent和Jaeger Collector。
sudo docker run \ -p 5775:5775/udp \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 14268:14268 \ -e SPAN_STORAGE_TYPE=elasticsearch \ --name=jaeger \ jaegertracing/all-in-one:latest
但是此命令给出以下错误。如何用ElasticSearch配置Jaeger?
"msg":"Failed to init storage factory","error":"health check timeout: no Elasticsearch node available","errorVerbose":"no Elasticsearch node available\
搜索解决方案一段时间后,我发现了一个docker-compose.yml文件,该文件具有Jaeger Query,Agent,collector和Elasticsearch配置。
docker-compose.yml
version: "3" services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.3.1 networks: - elastic-jaeger ports: - "127.0.0.1:9200:9200" - "127.0.0.1:9300:9300" restart: on-failure environment: - cluster.name=jaeger-cluster - discovery.type=single-node - http.host=0.0.0.0 - transport.host=127.0.0.1 - ES_JAVA_OPTS=-Xms512m -Xmx512m - xpack.security.enabled=false volumes: - esdata:/usr/share/elasticsearch/data jaeger-collector: image: jaegertracing/jaeger-collector ports: - "14269:14269" - "14268:14268" - "14267:14267" - "9411:9411" networks: - elastic-jaeger restart: on-failure environment: - SPAN_STORAGE_TYPE=elasticsearch command: [ "--es.server-urls=http://elasticsearch:9200", "--es.num-shards=1", "--es.num-replicas=0", "--log-level=error" ] depends_on: - elasticsearch jaeger-agent: image: jaegertracing/jaeger-agent hostname: jaeger-agent command: ["--collector.host-port=jaeger-collector:14267"] ports: - "5775:5775/udp" - "6831:6831/udp" - "6832:6832/udp" - "5778:5778" networks: - elastic-jaeger restart: on-failure environment: - SPAN_STORAGE_TYPE=elasticsearch depends_on: - jaeger-collector jaeger-query: image: jaegertracing/jaeger-query environment: - SPAN_STORAGE_TYPE=elasticsearch - no_proxy=localhost ports: - "16686:16686" - "16687:16687" networks: - elastic-jaeger restart: on-failure command: [ "--es.server-urls=http://elasticsearch:9200", "--span-storage.type=elasticsearch", "--log-level=debug" ] depends_on: - jaeger-agent volumes: esdata: driver: local networks: elastic-jaeger: driver: bridge
docker-compose.yml文件将安装elasticsearch,Jaeger收集器,查询和代理。
安装docker和docker首先组成 https://docs.docker.com/compose/install/#install- compose
然后,按顺序执行这些命令
1. sudo docker-compose up -d elasticsearch 2. sudo docker-compose up -d 3. sudo docker ps -a
启动所有docker容器-Jaeger代理,收集器,查询和elasticsearch。
sudo docker启动容器ID
访问-> http:// localhost:16686 /