全部產品
Search
文件中心

Simple Log Service:接入Kubernetes Ingress鏈路資料

更新時間:Jun 30, 2024

本文介紹通過OpenTelemetry將Kubernetes Ingress鏈路資料上傳到Trace服務的操作步驟。

前提條件

已建立Trace執行個體。更多資訊,請參見建立Trace執行個體

步驟一:安裝OpenTelemetry Collector

  1. 登入您的Kubernetes叢集。
  2. 安裝cert-manager。
    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
  3. 部署OpenTelemetry Operator。
    1. 下載opentelemetry-operator.yaml檔案。
      wget https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
    2. 開啟opentelemetry-operator.yaml檔案,並替換其中的鏡像資訊。
      將opentelemetry-operator.yaml檔案中ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator替換為sls-registry.cn-beijing.cr.aliyuncs.com/opentelemetry-operator/opentelemetry-operator,如下圖所示。採集Ingress鏈路資料
    3. 執行如下命令使配置生效。
      kubectl apply -f opentelemetry-operator.yaml
  4. 部署OpenTelemetry Collector。
    1. 建立一個YAML檔案。
      vim collector.yaml
    2. 在YAML檔案輸入如下指令碼,並根據實際情況設定其中的參數。
      apiVersion: opentelemetry.io/v1alpha1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
      spec:
        image: otel/opentelemetry-collector-contrib:latest
        config: |
          receivers:
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
                  protocols:
                    grpc:
                thrift_http:
                thrift_compact:
                thrift_binary:
            zipkin:
          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, jaeger, zipkin]
                exporters: [alibabacloud_logservice/traces]
              metrics:
                receivers: [otlp]
                exporters: [alibabacloud_logservice/metrics]
                                      
      參數說明
      endpointLog Service的服務入口,例如cn-hangzhou.log.aliyuncs.com。更多資訊,請參見服務入口
      project設定為您在建立Trace執行個體時所選擇的Project。更多資訊,請參見建立Trace執行個體
      logstore建立Trace執行個體後,Log Service自動在您所選擇的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。

      建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey(包括AccessKey ID和AccessKey Secret)。授予RAM使用者向指定Project寫入資料許可權的具體操作,請參見授權。如何擷取AccessKey的具體操作,請參見存取金鑰

      access_key_secret阿里雲存取金鑰AccessKey Secret。

      建議您使用只具備Log ServiceProject寫入許可權的RAM使用者的AccessKey。

    3. 使配置生效。

      其中otel-test為業務所在的命名空間。

      kubectl apply -f collector.yaml --namespace=otel-test

步驟二:配置Ingress OpenTracing

此處以阿里雲Kubernetes為例。

  1. 登入Container Service控制台
  2. 叢集列表頁面中,單擊目的地組群。
  3. 在左側導覽列中,選擇組態管理 > 配置項
  4. 配置項頁面的頂部,選擇kube-system命名空間,然後在配置項列表中單擊nginx-configuration對應的編輯
  5. 編輯面板中,添加如下兩個配置項,然後單擊確定

    其中otel-test為業務所在的命名空間,需與您在步驟4.iii中設定的命名空間一致。

    zipkin-collector-host: otel-collector.otel-test.svc.cluster.local:9411/api/v1/spans?
    enable-opentracing: true
    配置項
    完成上述操作後,當您的Kubernetes產生Ingress鏈路資料時,OpenTelemetry就會上傳該資料到Trace服務。您可以在Trace服務中查看資料。具體操作,請參見查看Trace資料詳情