Amazon ECS 集群的示例 App Mesh 工作负载
要从 Amazon ECS 的示例 Prometheus 工作负载收集指标,您必须在集群中运行 Container Insights。有关安装 Container Insights 的信息,请参阅 在 Amazon ECS 上设置 Container Insights。
首先,按照本演练
接下来,按照以下步骤在安装颜色应用程序的同一 Amazon ECS 集群上,安装带有 Prometheus 监控功能的 CloudWatch 代理。本节中的步骤以桥式网络模式安装 CloudWatch 代理。
您在演练中设置的环境变量 ENVIRONMENT_NAME
、AWS_PROFILE
和 AWS_DEFAULT_REGION
也将在以下步骤中使用。
安装带有 Prometheus 监控功能的 CloudWatch 代理以进行测试
-
通过输入以下命令,下载 Amazon CloudFormation 模板。
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
-
通过输入以下命令,设置网络模式。
export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
-
输入以下命令以创建 Amazon CloudFormation 堆栈。
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=True \ ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \ ParameterKey=TaskRoleName,ParameterValue=CWAgent-Prometheus-TaskRole-${ECS_CLUSTER_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=CWAgent-Prometheus-ExecutionRole-${ECS_CLUSTER_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}
-
(可选)创建 Amazon CloudFormation 堆栈后,您会看到
CREATE_COMPLETE
消息。如果要在看到该消息之前检查状态,请输入以下命令。aws cloudformation describe-stacks \ --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --query 'Stacks[0].StackStatus' \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}
故障排除
演练中的步骤使用 jq 来分析 Amazon CLI 的输出结果。有关安装 jq 代理的更多信息,请参阅 jq
$ aws configure
当响应变为 Default output format
时,输入 json
。
使用 Prometheus 监控功能卸载 CloudWatch 代理
完成测试后,输入以下命令以通过 Amazon CloudFormation 删除堆栈来卸载 CloudWatch 代理。
aws cloudformation delete-stack \ --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}