本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
OpenTelemetry Collector Contrib
可以使用 OpenTelemetry Collector Contrib,在 CloudWatch 中開始使用 OpenTelemetry。
先決條件
確定已在 CloudWatch 中啟用 Transaction Search。如需詳細資訊,請參閱 Transaction Search。
下載 OpenTelemetry Collector Contrib
下載最新版本的 OpenTelemetry Collector Contrib 套件發行版。
安裝 OpenTelemetry Collector Contrib
在任何作業系統和平台上安裝 OpenTelemetry Collector Contrib。如需詳細資訊,請參閱安裝 Collector。
在 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]