JaegerからSimple Log Serviceにトレースデータをインポートするか、OpenTelemetry Collectorを使用してトレースデータをSimple Log Serviceに転送できます。
前提条件
トレースインスタンスが作成されます。 詳細については、「トレースインスタンスの作成」をご参照ください。
Jaegerからトレースデータをインポートする
Jaegerプロトコルを使用してトレースデータをSimple Log Serviceにインポートする場合は、Jaegerトレースプラットフォームでエンドポイントと認証の設定を行う必要があります。 次のリストは、必要な設定を示しています。
エンドポイントの設定
HTTPSエンドポイントは ${endpoint}/jaeger/api/traces形式です。 例: https://test-project.cn-hangzhou-intranet.log.aliyuncs.com/jaeger/api/traces 。
gRPCエンドポイントは ${endpoint}:10010形式です。 例: test-project.cn-hangzhou-intranet.log.aliyuncs.com:10010。
重要送信中のデータセキュリティを確保する場合は、gRPCプロトコルを使用するときにトランスポート層セキュリティ (TLS) を有効にする必要があります。
${endpoint} 変数を実際の値に置き換える必要があります。 次の表では、変数について説明します。
表 1. 変数の説明
変数
説明
例
${endpoint}
エンドポイント。 形式は ${project}.${region-endpoint} です。
${project}: Simple Log Serviceプロジェクトの名前。
${region-endpoint}: プロジェクトのエンドポイント。 Simple Log Serviceには、プロジェクトのパブリックまたは内部エンドポイントを使用してアクセスできます。 内部エンドポイントは、クラシックネットワークまたは仮想プライベートクラウド (VPC) を介したアクセスに使用されます。 詳細については、「エンドポイント」をご参照ください。
test-project.cn-hangzhou.log.aliyuncs.com
認証設定
gRPCまたはHTTPSプロトコルのヘッダー、またはJaegerプロトコルの [タグ] フィールドで認証設定を構成できます。 次の表に、必須フィールドを示します。
Jaegerタグフィールド
gRPCまたはHTTPSヘッダーキー
説明
例
sls.otel.project
x-sls-otel-project
Simple Log Serviceプロジェクトの名前。
test-project
sls.otel.instanceid
x-sls-otel-instance-id
トレースインスタンスのID。 詳細については、「トレースインスタンスの作成」をご参照ください。
テストトレース
sls.otel.akid
x-sls-otel-ak-id
Alibaba CloudアカウントのAccessKey ID。
Simple Log Serviceプロジェクトの書き込み権限のみを持つResource Access Management (RAM) ユーザーのAccessKeyペアを使用することを推奨します。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 特定のプロジェクトの書き込み権限をRAMユーザーに付与する方法については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。 AccessKeyペアの取得方法については、「AccessKeyペア」をご参照ください。
なし
sls.otel.aksecret
x-sls-otel-ak-secret
Alibaba CloudアカウントのAccessKeyシークレット。
Simple Log Serviceプロジェクトに対する書き込み権限のみを持つRAMユーザーのAccessKeyペアを使用することを推奨します。
なし
OpenTelemetryコレクターを使用してトレースデータを転送する
OpenTelemetry Collectorをインストールします。
OpenTelemetryコレクターを設定します。
config.yamlファイルを作成します。
次のコードをconfig.yamlファイルに追加します。
次のコードの変数を実際の値に置き換えます。 変数の詳細については、「変数の説明」をご参照ください。
receivers: jaeger: protocols: grpc: endpoint: 0.0.0.0:6831 thrift_binary: endpoint: 0.0.0.0:6832 thrift_compact: endpoint: 0.0.0.0:6833 thrift_http: endpoint: 0.0.0.0:6834 exporters: logging/detail: loglevel: debug alibabacloud_logservice/sls-trace: endpoint: "${endpoint}" project: "${project}" logstore: "${instance}-traces" access_key_id: "${access-key-id}" access_key_secret: "${access-key-secret}" service: pipelines: traces: receivers: [jaeger] # Set the receivers parameter to jaeger. exporters: [alibabacloud_logservice/sls-trace] # Set the exporters parameter to alibabacloud_logservice/sls-trace. # for debug #exporters: [logging/detail,alibabacloud_logservice/sls-trace]
表 2. 変数の説明
変数
説明
例
${endpoint}
Simple Log Serviceのエンドポイント。 形式は ${region-endpoint} です。 ${region-endpoint} は、実際にはSimple Log Serviceプロジェクトのエンドポイントです。 Simple Log Serviceには、プロジェクトのパブリックまたは内部エンドポイントを使用してアクセスできます。 内部エンドポイントは、クラシックネットワークまたはVPC経由のアクセスに使用されます。 詳細については、「エンドポイント」をご参照ください。
cn-hangzhou.log.aliyuncs.com:10010
${project}
Simple Log Serviceプロジェクトの名前。
test-project
${instance}
トレースインスタンスの名前。 詳細については、「トレースインスタンスの作成」をご参照ください。
テストトレース
${access-key-id}
Alibaba CloudアカウントのAccessKey ID。
Simple Log Serviceプロジェクトに対する書き込み権限のみを持つRAMユーザーのAccessKeyペアを使用することを推奨します。 特定のプロジェクトの書き込み権限をRAMユーザーに付与する方法については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。 AccessKeyペアの取得方法については、「AccessKeyペア」をご参照ください。
なし
${access-key-secret}
Alibaba CloudアカウントのAccessKeyシークレット。
Simple Log Serviceプロジェクトに対する書き込み権限のみを持つRAMユーザーのAccessKeyペアを使用することを推奨します。
なし
OpenTelemetryコレクターを起動します。
./otelcontribcol_linux_amd64 --config="./config.yaml"
Jaegerを設定します。
Jaegerトレースシステムの出力エンドポイントを、OpenTelemetry Collectorがリッスンできるエンドポイントに変更します。 たとえば、OpenTelemetry Collectorのエンドポイントが ${collector-host} の場合、Jaegerトレースシステムの出力エンドポイントを ${collector-host}: ${port} /api/tracesに変更する必要があります。
説明データの解析に失敗したためにOpenTelemetry Collectorからエラーが返された場合は、Jaegerトレースシステムの4つの受信モードを切り替えて問題のトラブルシューティングを行うことができます。