部署 AWS Distro for OpenTelemetry 以收集 Amazon ECS 叢集上的 EC2 執行個體層級指標 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

部署 AWS Distro for OpenTelemetry 以收集 Amazon ECS 叢集上的 EC2 執行個體層級指標

使用本節中的步驟,使用 AWS Distro for OpenTelemetry 在 Amazon ECS 叢集上收集 EC2 執行個體層級指標。如需 AWS Distro for OpenTelemetry 的詳細資訊,請參閱 AWS Distro for OpenTelemetry

這些步驟假設您已經有一個執行 Amazon ECS 的叢集。必須使用 EC2 啟動類型來部署此叢集。如需將 AWS Distro for Open Telemetry 與 Amazon ECS 搭配使用並為此設定 Amazon ECS 叢集的詳細資訊,請參閱在 Amazon Elastic Container Service for ECS EC2 執行個體層級指標中設定 AWS Distro for OpenTelemetry Collector

使用 快速設定 AWS CloudFormation

下載 AWS CloudFormation 範本檔案以安裝適用於 EC2 上 Amazon ECS 的 AWS Distro for OpenTelemetry 收集器。執行下列 curl 命令。

curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml

下載範本檔案後,將其開啟並將 PATH_TO_CloudFormation_TEMPLATE 替換為您儲存範本檔案的路徑。然後匯出下列參數並執行 AWS CloudFormation 命令,如下列命令所示。

  • Cluster_Name– Amazon ECS 叢集名稱

  • AWS_Region– 將傳送資料的區域

  • PATH_TO_CloudFormation_TEMPLATE – 您儲存 AWS CloudFormation 範本檔案的路徑。

  • command – 若要讓 AWS Distro for OpenTelemetry 收集器收集 Amazon ECS on Amazon EC2 的執行個體層級指標,您必須--config=/etc/ecs/otel-instance-metrics-config.yaml為此參數指定 。

ClusterName=Cluster_Name Region=AWS_Region command=--config=/etc/ecs/otel-instance-metrics-config.yaml aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \ --template-body file://PATH_TO_CloudFormation_TEMPLATE \ --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \ ParameterKey=CreateIAMRoles,ParameterValue=True \ ParameterKey=command,ParameterValue=${command} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${Region}

執行此命令後,請使用 Amazon ECS 主控台查看任務是否正在執行。

故障診斷快速設定

若要檢查 AWS CloudFormation 堆疊的狀態,請輸入下列命令。

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region

如果 StackStatus 的值不是 CREATE_COMPLETECREATE_IN_PROGRESS,請檢查堆疊事件以找出錯誤。輸入以下命令。

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region

若要檢查 AOCECS 常駐程式服務的狀態,請輸入以下命令。在輸出中,您應該會看到 runningCount 等於 deployment (部署) 區段的 desiredCount。如果不相等,請檢查輸出的 failures (失敗) 區段。

ClusterName=cluster-name Region=cluster-region aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region

您也可以使用 CloudWatch Logs 主控台檢查代理程式日誌。尋找 /aws/ecs/containerinsights/{ClusterName}/performance 日誌群組。

手動和自訂設定

遵循本節中的步驟,手動部署 AWS Distro for OpenTelemetry,以從託管在 Amazon EC2 執行個體上的 Amazon ECS 叢集收集執行個體層級指標。

步驟 1:必要的角色和政策

需要兩個 IAM 角色。如果角色不存在,即必須建立角色。如需這些角色的詳細資訊,請參閱建立 IAM 政策建立 IAM 角色

步驟 2:建立任務定義

建立任務定義,並使用它來啟動 AWS Distro for OpenTelemetry 做為協助程式服務。

若要使用任務定義範本來建立任務定義,請遵循使用 AWS OTel Collector 建立 EC2 執行個體的 ECS EC2 任務定義中的指示。

若要使用 Amazon ECS 主控台建立任務定義,請遵循 Install AWS OTel Collector 中的指示,方法是透過 AWS 主控台建立 Amazon ECS EC2 執行個體指標的任務定義

步驟 3:啟動常駐程式服務

若要將 AWS Distro for OpenTelemetry 啟動為協助程式服務,請遵循使用協助程式服務在 Amazon Elastic Container Service (Amazon ECS) 上執行任務中的指示。

(選用) 進階組態

或者,您可以選擇使用 SSM 為 Amazon EC2 執行個體託管之 Amazon ECS 叢集中的 AWS Distro for OpenTelemetry,指定其他組態選項。如需有關建立組態檔案的詳細資訊,請參閱自訂 OpenTelemetry 組態。如需有關您在組態檔案中可使用之選項的詳細資訊,請參閱 AWS Container Insights Receiver