

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Installieren Sie den CloudWatch Agenten mit der Erfassung von Prometheus-Metriken auf Amazon ECS-Clustern
<a name="ContainerInsights-Prometheus-install-ECS"></a>

In diesem Abschnitt wird erklärt, wie Sie den CloudWatch Agenten mit Prometheus-Überwachung in einem Cluster einrichten, auf dem Amazon ECS ausgeführt wird. Danach scrapt und importiert der Agent automatisch Metriken für die folgenden Workloads, die in diesem Cluster ausgeführt werden.
+ AWS App Mesh
+ Java/JMX

Sie können den Agenten auch so konfigurieren, dass er Metriken aus weiteren Prometheus-Workloads und -Quellen importiert.

## Einrichten von IAM-Rollen
<a name="ContainerInsights-Prometheus-Setup-ECS-IAM"></a>

Für die Aufgabendefinition des Agenten benötigen Sie zwei IAM-Rollen. CloudWatch Wenn Sie **CreateIAMRoles=True** im CloudFormation Stack angeben, dass Container Insights diese Rollen für Sie erstellen soll, werden die Rollen mit den richtigen Berechtigungen erstellt. Wenn Sie sie selbst erstellen oder vorhandene Rollen verwenden möchten, sind die folgenden Rollen und Berechtigungen erforderlich.
+ **CloudWatch ECS-Aufgabenrolle für Agenten** — Der CloudWatch Agent-Container verwendet diese Rolle. Sie muss die **CloudWatchAgentServerPolicy**Richtlinie und eine vom Kunden verwaltete Richtlinie enthalten, die die folgenden schreibgeschützten Berechtigungen enthält:
  + `ec2:DescribeInstances`
  + `ecs:ListTasks`
  + `ecs:ListServices`
  + `ecs:DescribeContainerInstances`
  + `ecs:DescribeServices`
  + `ecs:DescribeTasks`
  + `ecs:DescribeTaskDefinition`
+ **CloudWatch Rolle zur Ausführung von ECS-Aufgaben für Agenten** — Dies ist die Rolle, die Amazon ECS benötigt, um Ihre Container zu starten und auszuführen. Stellen Sie sicher, dass Ihrer Rolle zur Aufgabenausführung die **CloudWatchAgentServerPolicy**Richtlinien **AmazonSSMReadOnlyAccess**AmazonECSTaskExecutionRolePolicy****, und zugeordnet sind. Wenn Sie sensiblere Daten zur Verwendung durch Amazon ECS speichern möchten, finden Sie weitere Informationen unter [Angabe sensibler Daten](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html).

## Installieren Sie den CloudWatch Agenten mit Prometheus-Überwachung mithilfe von CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-CFN"></a>

Sie verwenden AWS CloudFormation , um den CloudWatch Agenten mit Prometheus-Überwachung für Amazon ECS-Cluster zu installieren. Die folgende Liste zeigt die Parameter, die Sie in der CloudFormation -Vorlage verwenden werden.
+ **ECSClusterName**— Gibt den Amazon ECS-Zielcluster an.
+ **CreateIamRollen** – Geben Sie **True** an, um neue Rollen für die Amazon-ECS-Aufgabenrolle und die Amazon-ECS-Aufgabenausführungsrolle zu erstellen. Geben Sie **False** an, um vorhandene Rollen wiederzuverwenden.
+ **TaskRoleName**— Wenn Sie **CreateIamRoles** angegeben **True** haben, gibt dies den Namen an, der für die neue Amazon ECS-Aufgabenrolle verwendet werden soll. Wenn Sie **False** für **CreateIAMRoles** angegeben haben, gibt dies den Namen an, der für die neue Amazon-ECS-Aufgabenrolle verwendet werden soll. 
+ **ExecutionRoleName**— Wenn Sie **CreateIamRoles** angegeben **True** haben, gibt dies den Namen an, der für die neue Amazon ECS-Aufgabenausführungsrolle verwendet werden soll. Wenn Sie **False** für **CreateIAMRoles** angegeben haben, gibt dies den Namen an, der für die neue Amazon-ECS-Aufgabenausführungsrolle verwendet werden soll. 
+ **ECSNetworkMode**— Wenn Sie den EC2-Starttyp verwenden, geben Sie hier den Netzwerkmodus an. Es muss entweder **bridge** oder **host** sein.
+ **ECSLaunchType**— Geben Sie entweder **fargate** oder **EC2** an.
+ **SecurityGroupID** — Falls ja**awsvpc**, geben Sie hier die Sicherheitsgruppen-ID an. **ECSNetworkMode**
+ **SubnetID** — Falls ja**awsvpc**, geben Sie **ECSNetworkMode**hier die Subnetz-ID an.

### Befehlsbeispiele
<a name="ContainerInsights-Prometheus-Setup-ECS-CFNcommands"></a>

Dieser Abschnitt enthält CloudFormation Beispielbefehle zur Installation von Container Insights mit Prometheus-Überwachung in verschiedenen Szenarien.

**Erstellen Sie einen CloudFormation Stack für einen Amazon ECS-Cluster im Bridge-Netzwerkmodus**

```
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}
```

** CloudFormation Stack für einen Amazon ECS-Cluster im Host-Netzwerkmodus erstellen**

```
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}
```

**Erstellen Sie einen CloudFormation Stack für einen Amazon ECS-Cluster im awsvpc-Netzwerkmodus**

```
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}
```

**Erstellen Sie einen CloudFormation Stack für einen Fargate-Cluster im awsvpc-Netzwerkmodus**

```
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 Ressourcen, die erstellt wurden von CloudFormation Stack
<a name="ContainerInsights-Prometheus-Setup-ECS-resources"></a>

In der folgenden Tabelle sind die AWS Ressourcen aufgeführt, die erstellt werden, wenn Sie CloudFormation Container Insights mit Prometheus-Überwachung auf einem Amazon ECS-Cluster einrichten.


| Ressourcentyp | Ressourcenname | Kommentare | 
| --- | --- | --- | 
| AWS::SSM::Parameter | AmazonCloudWatch-CWAgentConfig-${{ECS\_CLUSTER\_NAME}}-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} | Dies ist der CloudWatch Agent mit dem Standard-App Mesh und der Java/JMX eingebetteten metrischen Formatdefinition. | 
| AWS::SSM::Parameter | AmazonCloudWatch-PrometheusConfigName-${{ECS\_CLUSTER\_NAME}}-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} | Dies ist die Prometheus-Scraping-Konfiguration. | 
| AWS::IAM::Role | **$ECS\_TASK\_ROLE\_NAME**.  | Die Amazon-ECS-Aufgabenrolle. Dies wird nur erstellt, wenn Sie **True**für `CREATE_IAM_ROLES` angegeben haben. | 
| AWS::IAM::Role | **${ECS\_EXECUTION\_ROLE\_NAME}**  | IAM-Rolle für die Amazon-ECS-Aufgabenausführung Dies wird nur erstellt, wenn Sie **True**für `CREATE_IAM_ROLES` angegeben haben. | 
| AWS: :ECS:: TaskDefinition | carent-prometheus-$ -$ -$ {{ECS\_CLUSTER\_NAME}} {{ECS\_LAUNCH\_TYPE}} {{ECS\_NETWORK\_MODE}}  |   | 
| AWS::ECS::Service | {{ECS\_LAUNCH\_TYPE}}cwagent-prometheus-replika-service-$ -$ {{ECS\_NETWORK\_MODE}} |   | 

### Löschen des CloudFormation Stack für den CloudWatch Agenten mit Prometheus-Monitoring
<a name="ContainerInsights-Prometheus-ECS-delete"></a>

Um den CloudWatch Agenten aus einem Amazon ECS-Cluster zu löschen, geben Sie diese Befehle ein.

```
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}
```