Jaeger实现应用分布式追踪、以elasticsearch替代cassandra为后端的咨询
Jaeger 基于Elasticsearch作为存储后端的落地配置指南
核心配置逻辑
- Jaeger 采用无状态组件拆分架构,存储连接配置仅需在jaeger-collector、jaeger-query两个服务上配置,jaeger-agent、jaeger-ingester这类接入层组件无状态,不需要感知后端存储的连接信息。
- 配置时必须保证collector和query的ES连接参数、可查询时间范围完全一致,否则会出现写入成功但查询不到数据的问题。
分场景配置方法
二进制直接部署
- Collector 启动参数直接指定ES存储类型及连接信息:
./jaeger-collector --span-storage.type=elasticsearch --es.server-urls=http://es-node1:9200,http://es-node2:9200 --es.username=jaeger_writer --es.password=你设置的密码 --es.num-shards=3 --es.num-replicas=2 - Query 启动参数和collector保持一致,额外指定可查询的最大时间范围即可:
./jaeger-query --span-storage.type=elasticsearch --es.server-urls=http://es-node1:9200,http://es-node2:9200 --es.username=jaeger_reader --es.password=你设置的密码 --max-search-age=30d - 如果用配置文件管理参数,在配置文件的storage段下按如下结构配置即可,效果和命令行参数完全等价:
storage: type: elasticsearch elasticsearch: server_urls: ["http://es-node1:9200", "http://es-node2:9200"] username: "jaeger_admin" password: "对应账号密码" num_shards: 3 num_replicas: 2 max_search_age_in_days: 30
容器/编排平台(Docker/K8s)部署
- 所有存储相关配置通过环境变量注入即可,不需要修改镜像内置的配置文件:
- 给jaeger-collector 注入环境变量:
SPAN_STORAGE_TYPE=elasticsearch、ES_SERVER_URLS=http://es集群访问地址:9200、ES_USERNAME=jaeger_writer、ES_PASSWORD=账号密码 - 给jaeger-query 注入和collector完全一致的存储类、ES连接参数环境变量,额外配置
MAX_SEARCH_AGE=30d指定可查询的最长时间范围。
- 给jaeger-collector 注入环境变量:
落地避坑要点
- 不要手动修改Jaeger自动生成的索引命名规则,默认索引为按天拆分的
jaeger-span-yyyy-MM-dd、jaeger-service-yyyy-MM-dd格式,自定义命名会导致组件无法识别存量数据。 - 不要依赖Jaeger自带的索引清理脚本处理历史数据,写入量达到每天TB级别的场景下,自带的单线程清理脚本会大量占用ES计算资源,直接在ES侧配置ILM索引生命周期规则完成过期数据删除、索引合并即可。
- 权限配置遵循最小权限原则,给collector分配的ES账号只需要对jaeger开头的索引拥有创建、写入权限,给query分配的账号只需要对应索引的读权限,不要直接使用ES超级管理员账号接入。
- 高写入量场景下适当调整ES参数:将对应jaeger索引的刷新间隔从默认1s调整为5s,单索引大小控制在30GB-50GB区间,避免分片数量过多导致集群性能下降。
- 提前预留ES集群的磁盘余量,至少保留30%的空闲磁盘空间,避免触发ES的写保护机制导致trace数据写入失败。
和Cassandra存储的落地差异
- 不需要像Cassandra部署那样手动初始化keyspace、提前规划副本策略,ES连接验证通过后,Jaeger组件会自动创建配套的索引模板、初始化第一个索引。
- 查询灵活度更高,依托ES的分词检索能力,可以直接对trace的标签、日志字段做全文检索,不需要额外开发自定义查询逻辑。
- 运维成本更低,对已经有成熟ES运维体系的团队来说,不需要额外搭建、运维Cassandra集群,可直接复用现有ES的监控、告警、权限体系。
内容的提问来源于stack exchange,提问作者arunvel1988
相关产品推荐
相关产品推荐

