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

AKS自托管APIM场景下,如何将Dapr日志通过OTLP发至Azure Monitor?

问题:Dapr采集APIM日志无法通过OTel Collector转发至Azure Monitor

当前配置与问题现状

我们在AKS上自托管APIM,因部分容器日志仅输出至stdout未发送至Application Insights,已在values.yaml中启用Dapr采集stdout日志,配置如下:

dapr:
  enabled: true
  app:
    id: apim-test-scus
  config: tracing
  logging:
    useJsonOutput: true
    level: debug

同时尝试通过Open Telemetry Collector将日志发送至Azure Monitor,但仅能采集追踪数据,无法采集日志。OTel Collector的ConfigMap配置如下:

receivers:
  otlp:
    protocols:
      grpc:
      http:
  zipkin:
    endpoint: 0.0.0.0:9411

processors:
  batch:

exporters:
  azuremonitor:
    instrumentation_key: *****************
  logging:
    loglevel: info
extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679

service:
  extensions: [pprof, zpages, health_check]
  pipelines:
    traces:
      receivers: [zipkin]
      processors: [batch]
      exporters: [logging, azuremonitor]
    logs:
      receivers: [otlp]
      processors: []
      exporters: [logging, azuremonitor]

目前Dapr日志可在Dapr Dashboard中查看,但OTel Collector未收到Dapr通过OTLP发送的日志数据,需解决如何通过OTLP或其他协议将Dapr日志发送至OTel Collector的问题。

解决步骤

1. 配置Dapr日志输出至OTLP

需要修改Dapr的Configuration CRD(即配置中指定的tracing配置),添加OTLP日志导出器,将Dapr采集的日志发送到OTel Collector:

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: tracing
spec:
  tracing:
    samplingRate: "1"
    zipkin:
      endpointAddress: "http://otel-collector.default.svc.cluster.local:9411/api/v2/spans"
  logging:
    exporters:
    - name: otlp
      type: otlp
      metadata:
        endpoint: "http://otel-collector.default.svc.cluster.local:4317" # 对应OTel Collector的OTLP gRPC端口

注意替换为你的OTel Collector服务的实际地址和端口。

2. 优化OTel Collector日志Pipeline

当前日志Pipeline未使用batch处理器,建议添加以提升日志发送效率,同时确保OTLP接收器的端口与Dapr配置一致:

service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, azuremonitor]

3. 验证配置与连通性

  • 检查Dapr Sidecar日志,确认是否存在日志发送失败的报错信息
  • 在OTel Collector容器内查看日志,确认是否有OTLP日志请求接入
  • 验证Dapr Sidecar能否解析OTel Collector的服务地址,可通过Sidecar容器内执行nslookup otel-collector.default.svc.cluster.local测试

备选方案:直接采集Dapr Sidecar日志

若OTLP方案存在兼容性问题,可直接采集Dapr Sidecar的stdout日志(Dapr会将采集到的APIM日志输出至自身stdout),通过Filebeat或Fluentd等工具转发至OTel Collector或直接发送到Azure Monitor。例如使用Fluentd配置过滤Dapr日志中的APIM相关条目,再转发至OTel Collector的HTTP端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:42:46