

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Instal CloudWatch agen dengan koleksi metrik Prometheus di klaster Amazon ECS
<a name="ContainerInsights-Prometheus-install-ECS"></a>

Bagian ini menjelaskan cara mengatur CloudWatch agen dengan pemantauan Prometheus di cluster yang menjalankan Amazon ECS. Setelah melakukan hal tersebut, agen secara otomatis melakukan scraping terhadap dan mengimpor metrik-metrik untuk beban kerja berikut yang berjalan di klaster tersebut.
+ AWS App Mesh
+ Java/JMX

Anda juga dapat mengonfigurasi agen tersebut untuk melakukan scraping atas dan mengimpor metrik-metrik dari beban kerja dan sumber Prometheus tambahan.

## Menyiapkan peran IAM
<a name="ContainerInsights-Prometheus-Setup-ECS-IAM"></a>

Anda memerlukan dua peran IAM untuk definisi tugas CloudWatch agen. Jika Anda menentukan **CreateIAMRoles=True** di CloudFormation tumpukan agar Wawasan Kontainer membuat peran ini untuk Anda, peran akan dibuat dengan izin yang benar. Jika Anda ingin membuat peran-peran itu sendiri atau menggunakan peran-peran yang sudah ada, maka peran dan izin berikut diperlukan.
+ **CloudWatch peran tugas agen ECS** - Wadah CloudWatch agen menggunakan peran ini. Ini harus mencakup **CloudWatchAgentServerPolicy** kebijakan dan kebijakan yang dikelola pelanggan yang berisi izin baca-saja berikut:
  + `ec2:DescribeInstances`
  + `ecs:ListTasks`
  + `ecs:ListServices`
  + `ecs:DescribeContainerInstances`
  + `ecs:DescribeServices`
  + `ecs:DescribeTasks`
  + `ecs:DescribeTaskDefinition`
+ **CloudWatch peran eksekusi tugas agen ECS** — Ini adalah peran yang diperlukan Amazon ECS untuk meluncurkan dan menjalankan kontainer Anda. Pastikan peran eksekusi tugas Anda memiliki **Amazon SSMReadOnlyAccess, **Amazon ECSTask ExecutionRolePolicy****, dan **CloudWatchAgentServerPolicy**kebijakan yang dilampirkan. Jika Anda ingin menyimpan data yang lebih sensitif untuk digunakan oleh Amazon ECS, silakan lihat [ Menentukan data sensitif](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html).

## Instal CloudWatch agen dengan pemantauan Prometheus dengan menggunakan CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-CFN"></a>

Anda gunakan AWS CloudFormation untuk menginstal CloudWatch agen dengan pemantauan Prometheus untuk klaster Amazon ECS. Daftar berikut menunjukkan parameter-parameter yang akan Anda gunakan dalam template CloudFormation .
+ **ECSClusterNama** - Menentukan target klaster Amazon ECS.
+ **Buat IAMRoles** - Tentukan **True** untuk membuat peran baru untuk peran tugas Amazon ECS dan peran eksekusi tugas Amazon ECS. Tentukan **False** untuk menggunakan kembali peran-peran yang ada.
+ **TaskRoleName**— Jika Anda menentukan **True** untuk **Buat IAMRoles**, ini menentukan nama yang akan digunakan untuk peran tugas Amazon ECS yang baru. Jika Anda menetapkan **False** untuk **Buat IAMRoles**, ini menentukan peran yang ada untuk digunakan sebagai peran tugas Amazon ECS. 
+ **ExecutionRoleName**— Jika Anda menentukan **True** untuk **Buat IAMRoles**, ini menentukan nama yang akan digunakan untuk peran eksekusi tugas Amazon ECS yang baru. Jika Anda menetapkan **False** untuk **Buat IAMRoles**, ini menentukan peran yang ada untuk digunakan sebagai peran eksekusi tugas Amazon ECS. 
+ **ECSNetworkMode** - Jika Anda menggunakan tipe peluncuran EC2, tentukan mode jaringan di sini. Harus **bridge** atau **host**.
+ **ECSLaunchJenis** - Tentukan salah satu **fargate** atau**EC2**.
+ **SecurityGroupID** - Jika **ECSNetworkModenya****awsvpc**, tentukan ID grup keamanan di sini.
+ **SubnetID** - Jika **ECSNetworkModenya****awsvpc**, tentukan ID subnet di sini.

### Sampel-sampel perintah
<a name="ContainerInsights-Prometheus-Setup-ECS-CFNcommands"></a>

Bagian ini mencakup contoh CloudFormation perintah untuk menginstal Wawasan Kontainer dengan pemantauan Prometheus dalam berbagai skenario.

**Buat CloudFormation tumpukan untuk cluster Amazon ECS dalam mode jaringan jembatan**

```
export AWS_PROFILE={{your_aws_config_profile_eg_default}}
export AWS_DEFAULT_REGION={{your_aws_region_eg_ap-southeast-1}}
export ECS_CLUSTER_NAME={{your_ec2_ecs_cluster_name}}
export ECS_NETWORK_MODE=bridge
export CREATE_IAM_ROLES=True
export ECS_TASK_ROLE_NAME={{your_selected_ecs_task_role_name}}
export ECS_EXECUTION_ROLE_NAME={{your_selected_ecs_execution_role_name}}

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
    --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Buat CloudFormation tumpukan untuk cluster Amazon ECS dalam mode jaringan host**

```
export AWS_PROFILE={{your_aws_config_profile_eg_default}}
export AWS_DEFAULT_REGION={{your_aws_region_eg_ap-southeast-1}}
export ECS_CLUSTER_NAME={{your_ec2_ecs_cluster_name}}
export ECS_NETWORK_MODE=host
export CREATE_IAM_ROLES=True
export ECS_TASK_ROLE_NAME={{your_selected_ecs_task_role_name}}
export ECS_EXECUTION_ROLE_NAME={{your_selected_ecs_execution_role_name}}


curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \
    --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ 
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Buat CloudFormation tumpukan untuk cluster Amazon ECS dalam mode jaringan awsvpc**

```
export AWS_PROFILE={{your_aws_config_profile_eg_default}}
export AWS_DEFAULT_REGION={{your_aws_region_eg_ap-southeast-1}}
export ECS_CLUSTER_NAME={{your_ec2_ecs_cluster_name}}
export ECS_LAUNCH_TYPE=EC2
export CREATE_IAM_ROLES=True
export ECS_CLUSTER_SECURITY_GROUP={{your_security_group_eg_sg-xxxxxxxxxx}}
export ECS_CLUSTER_SUBNET={{your_subnet_eg_subnet-xxxxxxxxxx}}
export ECS_TASK_ROLE_NAME={{your_selected_ecs_task_role_name}}
export ECS_EXECUTION_ROLE_NAME={{your_selected_ecs_execution_role_name}}

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \
    --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \
                 ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \
                 ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

**Buat CloudFormation tumpukan untuk cluster Fargate dalam mode jaringan awsvpc**

```
export AWS_PROFILE={{your_aws_config_profile_eg_default}}
export AWS_DEFAULT_REGION={{your_aws_region_eg_ap-southeast-1}}
export ECS_CLUSTER_NAME={{your_ec2_ecs_cluster_name}}
export ECS_LAUNCH_TYPE=FARGATE
export CREATE_IAM_ROLES=True
export ECS_CLUSTER_SECURITY_GROUP={{your_security_group_eg_sg-xxxxxxxxxx}}
export ECS_CLUSTER_SUBNET={{your_subnet_eg_subnet-xxxxxxxxxx}}
export ECS_TASK_ROLE_NAME={{your_selected_ecs_task_role_name}}
export ECS_EXECUTION_ROLE_NAME={{your_selected_ecs_execution_role_name}}            

curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml

aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \
    --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \
    --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \
                 ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \
                 ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \
                 ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \
                 ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \
                 ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \
                 ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \
    --capabilities CAPABILITY_NAMED_IAM \
    --region ${AWS_DEFAULT_REGION} \
    --profile ${AWS_PROFILE}
```

### AWS sumber daya yang dibuat oleh CloudFormation tumpukan
<a name="ContainerInsights-Prometheus-Setup-ECS-resources"></a>

Tabel berikut mencantumkan AWS sumber daya yang dibuat saat Anda menggunakan CloudFormation untuk menyiapkan Wawasan Kontainer dengan pemantauan Prometheus di klaster Amazon ECS.


| Tipe sumber daya | Nama sumber daya | Komentar | 
| --- | --- | --- | 
| AWS::SSM::Parameter | AmazonCloudWatch- CWAgent Konfigurasi-$ -$ -$ {{ECS\_CLUSTER\_NAME}} {{ECS\_LAUNCH\_TYPE}} {{ECS\_NETWORK\_MODE}} | Ini adalah CloudWatch agen dengan App Mesh default dan definisi format metrik yang Java/JMX disematkan. | 
| AWS::SSM::Parameter | AmazonCloudWatch-PrometheusConfigName-${{ECS\_CLUSTER\_NAME}}-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} | Ini adalah konfigurasi scraping Prometheus. | 
| AWS::IAM::Role | **$ECS\_TASK\_ROLE\_NAME**.  | Peran tugas Amazon ECS. Ini hanya dibuat jika Anda menentukan **True** untuk `CREATE_IAM_ROLES`. | 
| AWS::IAM::Role | **${ECS\_EXECUTION\_ROLE\_NAME}**  | Peran eksekusi tugas Amazon ECS. Ini hanya dibuat jika Anda sudah menentukan **True** untuk `CREATE_IAM_ROLES`. | 
| AWS::ECS::TaskDefinition | {{ECS\_CLUSTER\_NAME}}cwagent-prometheus-$ -$ -$ {{ECS\_LAUNCH\_TYPE}} {{ECS\_NETWORK\_MODE}}  |   | 
| AWS::ECS::Service | cwagent-prometheus-replica-service-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} |   | 

### Menghapus CloudFormation tumpukan untuk CloudWatch agen dengan pemantauan Prometheus
<a name="ContainerInsights-Prometheus-ECS-delete"></a>

Untuk menghapus CloudWatch agen dari cluster Amazon ECS, masukkan perintah ini.

```
export AWS_PROFILE={{your_aws_config_profile_eg_default}}
export AWS_DEFAULT_REGION={{your_aws_region_eg_ap-southeast-1}}
export CLOUDFORMATION_STACK_NAME={{your_cloudformation_stack_name}}

aws cloudformation delete-stack \
--stack-name ${CLOUDFORMATION_STACK_NAME} \
--region ${AWS_DEFAULT_REGION} \
--profile ${AWS_PROFILE}
```