如何解决JaegerTracing:Jaeger Ingester 无法从 Kafka 队列读取并存储到 ElasticSearch
我是 Jaeger 和 Kafka 的新手,
我正在尝试使用 Kafka 作为中间缓冲区。
我使用 OpenTelemetry 直接使用 -Dotel.exporter.jaeger.endpoint 将数据发送到 Jaeger-Collector。 Jaeger-Collector 部署在 Kubernetes 上,而 Kafka 在另一个网络上但可以访问。我可以确认跟踪已发送到 Jaeger-collector。
点击收集器和输出的 /metrics 告诉我跨度已成功写入 Kafka。
jaeger_kafka_spans_written_total{status="success"} 21
收集器日志表明我正在写什么主题
{"Brokers":["myKafkaBroker......"}},"topic":"tp6"}
我想将这个(跨度)数据从 Kafka 队列获取到 ElasticSearch。为此,我按如下方式启动 Jaeger Ingester
docker run -e "SPAN_STORAGE_TYPE=elasticsearch" jaegertracing/jaeger-ingester:1.22 --kafka.consumer.topic=tp6 --kafka.consumer.brokers='myKafkaBroker' --es.tls.skip-host-verify
但是容器在致命错误后停止
{"level":"fatal","ts":1615546463.7784193,"caller":"command-line-arguments/main.go:64","msg":"Failed to init storage factory","error":"failed to create primary Elasticsearch client: health check timeout: Head \"http://127.0.0.1:9200\": dial tcp 127.0.0.1:9200: connect: connection refused: no Elasticsearch node available","stacktrace":"main.main.func1\n\tcommand-line-arguments/main.go:64\ngithub.com/spf13/cobra.(*Command).execute\n\tgithub.com/spf13/cobra@v0.0.7/command.go:838\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tgithub.com/spf13/cobra@v0.0.7/command.go:943\ngithub.com/spf13/cobra.(*Command).Execute\n\tgithub.com/spf13/cobra@v0.0.7/command.go:883\nmain.main\n\tcommand-line-arguments/main.go:113\nruntime.main\n\truntime/proc.go:204"}
elasticsearch 和 ingester 正在使用 docker 的同一台机器上运行。 elasticsearch 在 docker 上运行,使用
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"ocker.elastic.co/elasticsearch/elasticsearch:7.11.2
我已经禁用了 TLS,所以这应该不是问题。我无法让它工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。