本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
OpenTelemetry Collector Contrib
您可以使用 OpenTelemetry Collector Contrib 在 CloudWatch 中開始使用 OpenTelemetry。
先決條件
確定已在 CloudWatch 中啟用交易搜尋。如需詳細資訊,請參閱交易搜尋。
下載 OpenTelemetry Collector Contrib
下載最新版本的 OpenTelemetry Collector Contrib 分佈。
安裝 OpenTelemetry Collector Contrib
在任何作業系統和平台上安裝 OpenTelemetry Collector Contrib。如需詳細資訊,請參閱安裝收集器。
在 Amazon EC2 或內部部署主機上設定 AWS 登入資料
您可以在 Amazon EC2 或內部部署主機上設定 AWS 登入資料。
- Setup IAM permissions for Amazon EC2
-
請依照下列程序,將 CloudWatchAgentServerPolicy
IAM 政策連接至 Amazon EC2 執行個體的 IAM 角色。
前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。
選擇角色,然後尋找並選取 Amazon EC2 執行個體所使用的角色。
在許可索引標籤下,選擇新增許可、連接政策。
使用搜尋方塊,搜尋CloudWatchAgentServerPolicy
政策。
選取 CloudWatchAgentServerPolicy 政策,然後選擇新增許可。
- Setup IAM permissions for on-premise hosts
-
您可以建立 IAM 使用者,用來提供許可給現場部署主機。
前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。
選擇使用者、建立使用者。
在使用者詳細資訊下,針對使用者名稱,輸入新 IAM 使用者的名稱。這是 的登入名稱 AWS ,將用於驗證您的主機。
選擇下一步。
在設定許可頁面的許可選項下,選取直接連接政策。
從許可政策清單中,選取要新增至使用者的 CloudWatchAgentServerPolicy 政策。
選擇下一步。
在檢閱和建立頁面上,請確定您對使用者名稱感到滿意,且 CloudWatchAgentServerPolicy 政策位於許可摘要下。
選擇 Create user (建立使用者)。
建立和擷取您的 AWS 存取金鑰和私密金鑰 – 在 IAM 主控台的導覽窗格中,選擇使用者,然後選取您在上一個步驟中建立的使用者名稱。
在使用者頁面上,選擇安全登入資料索引標籤。
在存取金鑰區段下,選擇建立存取金鑰。
針對建立存取金鑰步驟 1,請選擇命令列界面 (CLI)。
對於建立存取金鑰步驟 2,選擇性地輸入標籤,然後選擇下一步。
針對建立存取金鑰步驟 3,選取下載 .csv 檔案,以使用 IAM 使用者的存取金鑰和私密存取金鑰儲存 .csv 檔案。後續步驟需要此資訊。
選擇完成。
輸入下列命令,在現場部署主機中設定您的 AWS 登入資料。將 ACCESS_KEY_ID 和 SECRET_ACCESS_ID 取代為您在上一個步驟中下載的 .csv 檔案中新產生的存取金鑰和私密存取金鑰。
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
為您的 Amazon EKS 或 Kubernetes 叢集設定 AWS 登入資料
若要設定 Amazon EKS 或 Kubernetes 叢集的 AWS 登入資料以將遙測傳送至 CloudWatch,請遵循下列程序。
- Setup IAM permissions for Amazon EKS
-
使用下列命令為您的叢集建立 IAM OIDC 身分提供者。
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME}
--region ${REGION
} --approve
使用下列命令,將 IAM 角色指派給 OTel Collector 的 Kubernetes 服務帳戶。
eksctl create iamserviceaccount \
--name ${COLLECTOR_SERVICE_ACCOUNT
}\
--namespace ${NAMESPACE
} \
--cluster ${CLUSTER_NAME
} \
--region ${REGION} \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--approve \
--override-existing-serviceaccounts
- Setup IAM permissions for Kubernetes
-
輸入下列命令,在現場部署主機中設定您的 AWS 登入資料。將 ACCESS_KEY_ID
和 SECRET_ACCESS_ID
取代為您在上一個步驟中下載的 .csv 檔案中新產生的存取金鑰和私密存取金鑰。根據預設,登入資料檔案會儲存在 /home/user/.aws/credentials 下。
aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
編輯 OpenTelemetry Collector 資源,使用 命令新增新建立的 AWS 登入資料秘密: kubectl edit OpenTelemetryCollector otel_collector
使用檔案編輯器,將下列組態新增至部署頂端,將 AWS 登入資料新增至 OpenTelemetryCollector 容器。將路徑 /home/user/.aws/credentials
取代為本機 AWS 登入資料檔案的位置。
spec:
volumeMounts:
- mountPath: /rootfs
volumeMounts:
- name: aws-credentials
mountPath: /root/.aws
readOnly: true
volumes:
- hostPath:
path: /home/user/.aws/credentials
name: aws-credentials
複製並貼上以下內容,以設定收集器將日誌和追蹤傳送至 OTLP 端點。
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/logs:
compression: gzip
logs_endpoint: logs_otlp_endpoint
headers:
x-aws-log-group: ency_log_group
x-aws-log-stream: default
auth:
authenticator: sigv4auth/logs
otlphttp/traces:
compression: gzip
traces_endpoint: traces_otlp_endpoint
auth:
authenticator: sigv4auth/traces
extensions:
sigv4auth/logs:
region: "region
"
service: "logs"
sigv4auth/traces:
region: "region
"
service: "xray"
service:
telemetry:
extensions: [sigv4auth/logs, sigv4auth/traces]
pipelines:
logs:
receivers: [otlp]
exporters: [otlphttp/logs]
traces:
receivers: [otlp]
exporters: [otlphttp/traces]
以下是使用 sigv4 將日誌和追蹤傳送到 us-east-1 的範例。
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/logs:
compression: gzip
logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs
headers:
x-aws-log-group: MyApplicationLogs
x-aws-log-stream: default
auth:
authenticator: sigv4auth/logs
otlphttp/traces:
compression: gzip
traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces
auth:
authenticator: sigv4auth/traces
extensions:
sigv4auth/logs:
region: "us-east-1"
service: "logs"
sigv4auth/traces:
region: "us-east-1"
service: "xray"
service:
telemetry:
extensions: [sigv4auth/logs, sigv4auth/traces]
pipelines:
logs:
receivers: [otlp]
exporters: [otlphttp/logs]
traces:
receivers: [otlp]
exporters: [otlphttp/traces]
將 OpenTelemetry SDKs設定為 always_on 取樣組態,以可靠地記錄 100% 的範圍,並使用 CloudWatch Application Signals 取得關鍵應用程式的完整可見性。如需詳細資訊,請參閱 OpenTelemetry Java SDK 採樣器組態範例。如需使用 X-Ray OTLP 端點設定 OpenTelemetry Collector 的範例,請參閱應用程式訊號示範儲存庫。