You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jaeger 1.52与Elasticsearch 8.11升级后服务列表不显示求助

问题描述

我们在Azure环境中使用Jaeger搭配ELK栈,近期将Jaeger版本升级至1.52、Elasticsearch版本升级至8.11。升级后出现以下异常:

  • Jaeger UI无法显示任何服务(包括Jaeger自身服务)
  • 通过Jaeger UI全局搜索trace ID等关键词时,能返回正确的追踪结果
  • jaeger-query日志中出现ES请求400错误,具体错误信息如下:
Error: {
    "caller": "app/http_handler.go:493",
    "error": "search services failed: elastic: Error 400 (Bad Request): all shards failed [type=search_phase_execution_exception]",
    "level": "error",
    "msg": "HTTP handler, Internal Server Error",
    "stacktrace": "github.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleError\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:493\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).getServices\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:164\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleFunc.traceResponseHandler.func2\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/http_handler.go:537\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngithub.com/jaegertracing/jaeger/cmd/query/app.(*APIHandler).handleFunc.WithRouteTag.func3\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.46.1/handler.go:285\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.46.1/handler.go:229\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddleware.func1.1\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.46.1/handler.go:81\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngithub.com/gorilla/mux.(*Router).ServeHTTP\n\tgithub.com/gorilla/mux@v1.8.1/mux.go:212\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.additionalHeadersHandler.func4\n\tgithub.com/jaegertracing/jaeger/cmd/query/app/additional_headers_handler.go:28\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngithub.com/jaegertracing/jaeger/cmd/query/app.createHTTPServer.CompressHandler.CompressHandlerLevel.func6\n\tgithub.com/gorilla/handlers@v1.5.1/compress.go:141\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2136\ngithub.com/gorilla/handlers.recoveryHandler.ServeHTTP\n\tgithub.com/gorilla/handlers@v1.5.1/recovery.go:78\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:2938\nnet/http.(*conn).serve\n\tnet/http/server.go:2009",
    "ts": 1709657320.93561
}
解决建议
  • 核对版本兼容性:确认Jaeger 1.52官方支持的ES版本范围,ES 8.11属于较新版本,可能存在API适配问题。若不在兼容列表,考虑降级ES或升级Jaeger至匹配版本;同时检查jaeger-query的ES客户端配置,启用ES 8.x适配的参数(如elasticsearch.use-aliases、elasticsearch.tls.enabled)。
  • 排查ES详细错误:查看ES集群节点的search相关日志,定位shard失败的具体原因(如字段映射错误、聚合语法不兼容、权限问题);或开启jaeger-query的调试日志(设置--log-level=debug),获取完整的ES请求体和响应,确认查询语法是否适配ES 8.x。
  • 修复索引映射:检查Jaeger服务索引(通常为jaeger-services-*)的serviceName字段类型,确保为keyword类型;若映射错误,重新创建索引模板,或用Jaeger初始化命令更新映射;对历史索引执行重新索引操作,适配ES 8.x规范。
  • 调整jaeger-query配置:确认ES认证配置(API密钥或用户名密码)正确,elasticsearch.server-urls指向正确的ES端点;尝试添加--elasticsearch.query.batch-size=1000参数调整查询批次,避免数据量过大导致请求失败。
  • 手动刷新索引:在ES中执行POST /jaeger-*/_refresh命令手动刷新索引,之后重启jaeger-query服务,检查UI服务列表是否恢复。

内容的提问来源于stack exchange,提问作者Ranjit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 08:47:13