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

如何通过Istio将分布式追踪与指标导出到Elastic Stack(ELK)实现可观测性

Istio对接Elastic Stack导出可观测性数据实现方案

整体高层架构

整个链路没有冗余的中间采集组件,数据流分层如下:

  • 数据生产层:Istio注入的Sidecar(Envoy代理)自动生成全链路追踪Span、服务调用黄金指标(延迟、吞吐量、错误率)、连接状态等可观测性数据
  • 数据导出层:通过Istio原生的OTLP导出能力/端点暴露能力,直接将数据输出到Elastic Stack的采集入口
  • 数据存储层:Elasticsearch负责存储结构化的追踪、指标数据,支持按时间分片管理降低存储成本
  • 数据应用层:Kibana提供链路查询、指标仪表盘、异常告警、根因分析等功能

分布式追踪数据导出配置

Elastic Stack从7.14版本开始原生支持OTLP协议摄入,无需通过Jaeger中转,直接对接Istio即可:

  • 修改Istio安装配置,指定追踪数据导出目标为Elastic APM Server的OTLP gRPC端点,参考IstioOperator配置片段:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    defaultConfig:
      tracing:
        open_telemetry:
          address: "elastic-apm-server.elastic-system.svc:4317"
          timeout: 10s
    enableTracing: true
    sampling: 0.05 # 采样率按需调整,生产环境建议默认设置为5%以下避免数据量过大
  • 确认Elastic APM Server已开启OTLP监听:默认APM Server会开放4317(gRPC)、4318(HTTP)端口作为OTLP入口,无需额外修改配置,仅需通过K8s网络策略放行Istio Sidecar到APM Server的访问权限即可
  • 验证:产生业务流量后,可直接在Kibana的APM模块查看服务调用拓扑、全链路追踪详情、Span耗时分布等数据

指标数据导出配置

有两种成熟的实现方案,可根据你的Istio版本选择:

方案1:Sidecar指标暴露+Filebeat采集(兼容所有Istio版本)

  • Istio Sidecar默认在15090端口暴露/stats/prometheus端点,输出全量Envoy运行指标
  • 部署Filebeat作为采集代理,配置Prometheus采集模块拉取所有带Istio注入标签的Pod的指标,处理后直接推送到Elasticsearch,参考配置片段:
filebeat.inputs:
- type: prometheus
  hosts: ["${POD_IP}:15090"]
  metrics_path: /stats/prometheus
  processors:
  - add_fields:
      fields:
        service_mesh: istio
        pod_namespace: ${POD_NAMESPACE}
        pod_name: ${POD_NAME}
output.elasticsearch:
  hosts: ["elasticsearch.elastic-system.svc:9200"]
  username: "${ES_AUTH_USER}"
  password: "${ES_AUTH_PWD}"
  • 优势:无需修改Istio默认配置,适配性强,可灵活做指标过滤、字段格式化处理

方案2:OTLP直接推送(适配Istio 1.18及以上版本)

  • 直接创建Istio的Telemetry自定义资源,配置指标导出规则,将指定的Istio标准指标直接推送到APM Server的OTLP端点,无需额外部署采集组件
  • 可通过Telemetry资源灵活配置需要导出的指标维度、聚合规则,减少无效数据传输

注意事项

  • 可配置Elastic Ingest Pipeline对收到的追踪、指标数据做二次处理,丢弃无用字段、补充业务标签,进一步降低存储成本
  • 生产环境建议配置分层采样规则:错误请求全采样,正常请求低比例采样,兼顾排障需求和资源成本
  • 所有Elastic Stack组件建议和Istio部署在同一K8s集群内,避免跨集群传输带来的延迟和安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:06:01