赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 日志应用
  6. 全栈可观测
  7. 全栈可观测常见问题
  8. 如何在Kubernetes集群中自动安装OpenTelemetry探针

如何在Kubernetes集群中自动安装OpenTelemetry探针

  • 全栈可观测常见问题
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何在Kubernetes集群中自动安装OpenTelemetry探针,实现Trace数据上传到日志服务。

操作步骤

  1. 登录Kubernetes集群。

  2. 执行如下命令,安装cert-manager。

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/cert-manager.yaml
  3. 执行如下命令,安装OpenTelemetry Operator。

    kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

    opentelemetry-operator.yaml配置文件中设置的是ghcr.io镜像地址。在中国境内访问时,会出现访问速度慢或报错问题。您可以修改opentelemetry-operator.yaml配置文件中的镜像地址,实现镜像加速。例如,使用日志服务提供的加速镜像,如下所示:

    将镜像地址ghcr.io替换为otel-image-mirror-registry.cn-beijing.cr.aliyuncs.com。

    说明

    目前镜像加速地址仅支持北京(otel-image-mirror-registry.cn-beijing.cr.aliyuncs.com)和杭州(otel-image-mirror-registry.cn-hangzhou.cr.aliyuncs.com)。

  4. 执行如下命令,安装OpenTelemetry Collector。

    kubectl apply -f - <<EOF
    apiVersion: opentelemetry.io/v1alpha1
    kind: OpenTelemetryCollector
    metadata:
      name: otel
    spec:
      image: otel/opentelemetry-collector-contrib:latest
      config: |
        receivers:
          otlp:
            protocols:
              grpc:
              http:
        exporters:
          alibabacloud_logservice/logs:
            endpoint: "cn-hangzhou.log.aliyuncs.com"
            project: "demo-project"
            logstore: "store-logs"
            access_key_id: "access-key-id"
            access_key_secret: "access-key-secret"
          alibabacloud_logservice/metrics:
            endpoint: "cn-hangzhou.log.aliyuncs.com"
            project: "demo-project"
            logstore: "store-traces-metrics"
            access_key_id: "access-key-id"
            access_key_secret: "access-key-secret"
          alibabacloud_logservice/traces:
            endpoint: "cn-hangzhou.log.aliyuncs.com"
            project: "demo-project"
            logstore: "store-traces"
            access_key_id: "access-key-id"
            access_key_secret: "access-key-secret"
    
        service:
          pipelines:
            traces:
              receivers: [otlp]
              exporters: [alibabacloud_logservice/traces]
            logs:
              receivers: [otlp]
              exporters: [alibabacloud_logservice/logs]
            metrics:
              receivers: [otlp]
              exporters: [alibabacloud_logservice/metrics]
    EOF

    命令中的重要参数说明如下表所示,请根据实际情况修改。

    参数

    说明

    endpoint

    日志服务的服务入口,例如cn-hangzhou.log.aliyuncs.com。更多信息,请参见服务入口。

    project

    设置为您在创建Trace实例时所选择的Project。更多信息,请参见创建Trace实例。

    logstore

    创建Trace实例后,日志服务自动在您所选择的Project下生成3个Logstore,分别用于存储Logs、Metrics和Traces数据。请根据实际情况替换Logstore名称。

    • trace_instance_id-logs

    • trace_instance_id-traces-metrics

    • trace_instance_id-traces

    其中trace_instance_id为Trace实例ID,请根据实际情况替换。更多信息,请参见创建Trace实例。

    access_key_id

    阿里云访问密钥AccessKey ID。更多信息,请参见访问密钥。

    access_key_secret

    阿里云访问密钥AccessKey Secret。更多信息,请参见访问密钥。

  5. 执行如下命令,安装OpenTelemetry Auto-Instrumentation。

    kubectl apply -f - <<EOF
    apiVersion: opentelemetry.io/v1alpha1
    kind: Instrumentation
    metadata:
      name: my-java-instrumentation
    spec:
      exporter:
        endpoint: http://otel-collector:4317
      propagators:
        - tracecontext
        - baggage
        - b3
      java:
        image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java:latest
      nodejs:
        image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-nodejs:latest
      python:
        image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-python:latest
        env:
          - name: OTEL_EXPORTER_OTLP_ENDPOINT
            value: http://otel-collector:4318
      dotnet:
        image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-dotnet:latest
        env:
          - name: OTEL_EXPORTER_OTLP_ENDPOINT
            value: http://otel-collector:4318
      apacheHttpd:
        image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-apache-httpd:latest
    EOF
    • 针对不同开发语言的应用(java、nodejs、python、dotnet等) ,请根据实际部署的情况,配置对应语言的Auto-Instrumentation。

    • 将ghcr镜像地址替换为日志服务提供的镜像地址,在中国境内访问时,会出现访问速度慢或报错问题,例如将ghcr.io替换为otel-image-mirror-registry.cn-beijing.cr.aliyuncs.com,可实现镜像加速。

    说明

    目前镜像加速地址仅支持北京(otel-image-mirror-registry.cn-beijing.cr.aliyuncs.com)和杭州(otel-image-mirror-registry.cn-hangzhou.cr.aliyuncs.com)。

  6. 在配置文件中添加自动注入探针配置。

    根据实际情况,在具体应用的配置文件中添加脚本。目前只支持Python、Node.js、Java和dotNET应用。

    重要

    my-java-instrumentation是安装Auto-Instrumentation时,设置的Instrumentation名称,即name参数的值,请根据实际值替换。

    image.png

    • Java

      instrumentation.opentelemetry.io/inject-java: "my-java-instrumentation"
    • Python

      instrumentation.opentelemetry.io/inject-python: "my-java-instrumentation"
    • Node.js

      instrumentation.opentelemetry.io/inject-nodejs: "my-java-instrumentation"
    • dotNET

      instrumentation.opentelemetry.io/inject-dotnet: "my-java-instrumentation"
相关文章

提示resource record not exist错误时,如何处理? 2025-04-22 10:44

全栈监控集成无侵入监控功能后,如下操作涉及部分加工权限,因此您需要使用阿里云账号或具备AliyunLogFullAccess权限的RAM用户执行如下操作,否则将出现resource record not exist问题。授予RAM用户AliyunLogFullAccess权限的操作步骤,请参见为RA

如何在Kubernetes集群中自动安装OpenTelemetry探针 2025-04-22 10:44

本文介绍如何在Kubernetes集群中自动安装OpenTelemetry探针,实现Trace数据上传到日志服务。 操作步骤

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号