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-Clustern ECS
In diesem Abschnitt wird erklärt, wie Sie den CloudWatch Agenten mit Prometheus-Überwachung in einem Cluster einrichten, auf dem Amazon ausgeführt wird. ECS 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.
Rollen einrichten IAM
Für die Aufgabendefinition des CloudWatch Agenten benötigen Sie zwei IAM Rollen. Wenn Sie CreateIAMRoles=True
in der angeben AWS CloudFormation Stapel, damit Container Insights diese Rollen für Sie erstellt, 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 ECSAgenten-Aufgabenrolle — Der CloudWatch Agent-Container verwendet diese Rolle. Sie muss die CloudWatchAgentServerPolicyRichtlinie 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 Agentenaufgaben — 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 CloudWatchAgentServerPolicyRichtlinien A mazonSSMRead OnlyAccess mazonECSTask ExecutionRolePolicy, A und zugewiesen sind. Wenn Sie sensiblere Daten für Amazon ECS speichern möchten, finden Sie weitere Informationen unter Vertrauliche Daten angeben.
Installieren Sie den CloudWatch Agenten mit Prometheus-Überwachung mithilfe von AWS CloudFormation
Sie verwenden AWS CloudFormation um den CloudWatch Agenten mit Prometheus-Überwachung für ECS Amazon-Cluster zu installieren. Die folgende Liste zeigt die Parameter, die Sie verwenden werden in AWS CloudFormation Vorlage.
-
ECSClusterName— Gibt den ECS Amazon-Zielcluster an.
-
C reateIAMRoles — Geben Sie
True
an, ob neue Rollen für die ECS Amazon-Aufgabenrolle und die ECS Amazon-Aufgabenausführungsrolle erstellt werden sollen. Geben SieFalse
an, um vorhandene Rollen wiederzuverwenden. -
TaskRoleName— Wenn Sie C angegeben
True
habenreateIAMRoles, gibt dies den Namen an, der für die neue ECS Amazon-Aufgabenrolle verwendet werden soll. Wenn Sie C angegebenFalse
habenreateIAMRoles, gibt dies die bestehende Rolle an, die als ECS Amazon-Aufgabenrolle verwendet werden soll. -
ExecutionRoleName— Wenn Sie C angegeben
True
habenreateIAMRoles, gibt dies den Namen an, der für die neue ECS Amazon-Aufgabenausführungsrolle verwendet werden soll. Wenn Sie C angegebenFalse
habenreateIAMRoles, gibt dies die bestehende Rolle an, die als ECS Amazon-Aufgabenausführungsrolle verwendet werden soll. -
ECSNetworkMode— Wenn Sie den EC2 Starttyp verwenden, geben Sie hier den Netzwerkmodus an. Es muss entweder
bridge
oderhost
sein. -
ECSLaunchType— Geben Sie entweder
fargate
oder anEC2
. -
SecurityGroupID — Falls ja
awsvpc
, geben Sie hier die Sicherheitsgruppen-ID an. ECSNetworkMode -
SubnetID — Falls ja
awsvpc
, geben Sie ECSNetworkModehier die Subnetz-ID an.
Befehlsbeispiele
Dieser Abschnitt enthält ein Beispiel AWS CloudFormation Befehle zur Installation von Container Insights mit Prometheus-Überwachung in verschiedenen Szenarien.
Erstellen AWS CloudFormation Stack für einen ECS Amazon-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}
Erstellen AWS CloudFormation Stack für einen ECS Amazon-Cluster im Host-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=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 AWS CloudFormation Stack für einen ECS Amazon-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 AWS 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 AWS CloudFormation Stack
In der folgenden Tabelle sind die AWS Ressourcen, die erstellt werden, wenn Sie AWS CloudFormation um Container Insights mit Prometheus-Monitoring auf einem ECS Amazon-Cluster einzurichten.
Ressourcentyp | Ressourcenname | Kommentare |
---|---|---|
AWS::: Parameter SSM |
AmazonCloudWatch-CWAgentConfig-$ |
Dies ist der CloudWatch Agent mit der Standardformatdefinition App Mesh und JMX Java/Embedded Metric. |
AWS::: Parameter SSM |
AmazonCloudWatch-PrometheusConfigName-$ |
Dies ist die Prometheus-Scraping-Konfiguration. |
AWS:::IAM: Rolle |
$ECS_TASK_ROLE_NAME. |
Die ECS Amazon-Aufgabenrolle. Dies wird nur erstellt, wenn Sie |
AWS:::IAM: Rolle |
${ECS_EXECUTION_ROLE_NAME} |
Die ECS Amazon-Aufgabenausführungsrolle. Dies wird nur erstellt, wenn Sie |
AWS::ECS::TaskDefinition |
cagent-prometheus-$ |
|
AWS::: Dienst ECS |
cwagent-prometheus-replica-service-$ |
Löschen des AWS CloudFormation Stack für den CloudWatch Agenten mit Prometheus-Monitoring
Um den CloudWatch Agenten aus einem ECS Amazon-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}