

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

# 部署 AWS Distro for OpenTelemetry 以收集 Amazon ECS 叢集上的 EC2 執行個體層級指標
<a name="deploy-container-insights-ECS-OTEL"></a>

使用本節中的步驟，使用 AWS Distro for OpenTelemetry 在 Amazon ECS 叢集上收集 EC2 執行個體層級指標。如需 AWS Distro for OpenTelemetry 的詳細資訊，請參閱 [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/)。

這些步驟假設您已經有一個執行 Amazon ECS 的叢集。必須使用 EC2 啟動類型來部署此叢集。如需將 AWS Distro for Open Telemetry 與 Amazon ECS 搭配使用並為此設定 Amazon ECS 叢集的詳細資訊，請參閱在 [Amazon Elastic Container Service for ECS EC2 執行個體層級指標中設定 AWS Distro for OpenTelemetry Collector](https://aws-otel.github.io/docs/setup/ecs#3-setup-the-aws-otel-collector-for-ecs-ec2-instance-metrics)。

**Topics**
+ [使用 快速設定 CloudFormation](#container-insights-ECS-OTEL-quicksetup)
+ [手動和自訂設定](#container-insights-ECS-OTEL-custom)

## 使用 快速設定 CloudFormation
<a name="container-insights-ECS-OTEL-quicksetup"></a>

下載 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\$1TO\$1CloudFormation\$1TEMPLATE* 替換為您儲存範本檔案的路徑。然後匯出下列參數並執行 CloudFormation 命令，如下列命令所示。
+ **Cluster\$1Name**– Amazon ECS 叢集名稱
+ **AWS\$1Region**– 將傳送資料的區域
+ **PATH\$1TO\$1CloudFormation\$1TEMPLATE** – 儲存 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 主控台查看任務是否正在執行。

### 故障診斷快速設定
<a name="container-insights-ECS-OTEL-quicksetup-troubleshooting"></a>

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

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

如果 `StackStatus` 的值不是 `CREATE_COMPLETE` 或 `CREATE_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/\$1ClusterName\$1/performance** 日誌群組。

## 手動和自訂設定
<a name="container-insights-ECS-OTEL-custom"></a>

請依照本節中的步驟手動部署 AWS Distro for OpenTelemetry，以從託管於 Amazon EC2 執行個體的 Amazon ECS 叢集收集執行個體層級指標。

### 步驟 1：必要的角色和政策
<a name="container-insights-ECS-OTEL-custom-iam"></a>

需要兩個 IAM 角色。如果角色不存在，即必須建立角色。如需這些角色的詳細資訊，請參閱[建立 IAM 政策](https://aws-otel.github.io/docs/setup/ecs/create-iam-policy)和[建立 IAM 角色](https://aws-otel.github.io/docs/setup/ecs/create-iam-role)。

### 步驟 2：建立任務定義
<a name="container-insights-ECS-OTEL-custom-task"></a>

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

若要使用任務定義範本來建立任務定義，請遵循[使用 AWS OTel Collector 建立 EC2 執行個體的 ECS EC2 任務定義](https://aws-otel.github.io/docs/setup/ecs/task-definition-for-ecs-ec2-instance)中的指示。

若要使用 Amazon ECS 主控台建立任務定義，請遵循 [ Install AWS OTel Collector 中的指示，方法是透過 Amazon ECS EC2 執行個體指標的 AWS 主控台建立任務定義](https://aws-otel.github.io/docs/setup/ecs/create-task-definition-instance-console)。

### 步驟 3：啟動常駐程式服務
<a name="container-insights-ECS-OTEL-custom-launch"></a>

若要啟動 AWS Distro for OpenTelemetry 做為協助程式服務，請遵循[使用協助程式服務在 Amazon Elastic Container Service (Amazon ECS) 上執行任務](https://aws-otel.github.io/docs/setup/ecs/run-daemon-service)中的指示。

### (選用) 進階組態
<a name="container-insights-ECS-OTEL-custom-advancdeconfig"></a>

或者，您可以選擇使用 SSM 為 Amazon EC2 執行個體託管之 Amazon ECS 叢集中的 AWS Distro for OpenTelemetry，指定其他組態選項。如需有關建立組態檔案的詳細資訊，請參閱[自訂 OpenTelemetry 組態](https://aws-otel.github.io/docs/setup/ecs#5-custom-opentelemetry-configuration)。如需有關您在組態檔案中可使用之選項的詳細資訊，請參閱 [AWS Container Insights Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/awscontainerinsightreceiver/README.md)。