すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:KubernetesクラスターからSimple Log ServiceへのIngressトレースデータのインポート

最終更新日:Sep 03, 2024

このトピックでは、OpenTelemetryを使用して、KubernetesクラスターからSimple Log ServiceのトレースアプリケーションにIngressトレースデータをインポートする方法について説明します。

前提条件

トレースインスタンスが作成されます。 詳細については、「トレースインスタンスの作成」をご参照ください。

ステップ1: OpenTelemetryコレクターのインストール

  1. Kubernetesクラスターにログインします。

  2. cert-managerをインストールします。

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
  3. OpenTelemetryオペレータをデプロイします。

    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-operatorsls-registry.cn-beijing.cr.aliyuncs.com/opentelemetry-operator/opentelemetry-operatorに置き換えます。 Collect Ingress trace data

    3. 次のコマンドを実行して設定を適用します。

      kubectl apply -f opentelemetry-operator.yaml
  4. OpenTelemetryコレクターをデプロイします。

    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]
                                      

      パラメーター

      説明

      エンドポイント

      Simple Log Serviceエンドポイント。 例: cn-hangzhou.log.aliyuncs.com。 詳細については、「エンドポイント」をご参照ください。

      project

      トレースインスタンスを作成するときに指定するプロジェクトの名前。 詳細については、「トレースインスタンスの作成」をご参照ください。

      logstore

      ログストアの名前 トレースインスタンスを作成すると、Simple Log Serviceは、ログデータ、メトリックデータ、およびトレースデータを格納するために、指定されたプロジェクトに3つのログストアを自動的に生成します。 ビジネスシナリオに基づいてLogstore名を置き換えます。

      • trace_instance_id -logs

      • trace_instance_id -traces-metrics

      • trace_instance_id -トレース

      trace_instance_idは、トレースインスタンスのidを指定します。 詳細については、「トレースインスタンスの作成」をご参照ください。

      access_key_id

      Simple Log Serviceへのアクセスに使用されるAccessKey ID。

      Simple Log Serviceプロジェクトに対する書き込み権限のみを持つRAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 指定したプロジェクトの書き込み権限をRAMユーザーに付与する方法の詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。

      access_key_secret

      Simple Log Serviceへのアクセスに使用されるAccessKeyシークレット。

      Simple Log Serviceプロジェクトに対する書き込み権限のみを持つRAMユーザーのAccessKeyペアを使用することを推奨します。

    3. 次のコマンドを実行して設定を適用します。

      otel-testは、サービスが存在する名前空間を示します。

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

ステップ2: Ingress OpenTracingの設定

この例では、Alibaba Cloud Container Service for Kubernetes (ACK) クラスターが使用されています。

  1. ACKコンソールにログインします。

  2. [クラスター] ページで、管理するクラスターをクリックします。

  3. 左側のナビゲーションウィンドウで、[設定] > [設定] を選択します。

  4. ConfigMapページで、名前空間ドロップダウンリストからkube-systemを選択します。 [ConfigMap] リストで [nginx-configuration] を見つけ、[操作] 列の [編集] をクリックします。

  5. [編集] パネルで、次の2つのパラメーターを設定し、[OK] をクリックします。

    otel-testは、サービスが存在する名前空間を示します。 この名前空間は、ステップ4.iiiで指定した名前空間と同じである必要があります。

    zipkin-collector-host: otel-collector.otel-test.svc.cluster.local:9411/api/v1/spans?
    enable-opentracing: true

    Parameters

    上記の設定が完了すると、OpenTelemetryはKubernetesクラスターによって生成されたIngressトレースデータをtraceにアップロードします。 トレースアプリケーションでトレースデータを表示できます。 詳細については、「トレースの詳細の表示」をご参照ください。