Amazon ECS 集群的示例 App Mesh 工作负载
要从 Amazon ECS 的示例 Prometheus 工作负载收集指标,您必须在集群中运行 Container Insights。有关安装 Container Insights 的信息,请参阅 Amazon ECS。
首先,按照本演练
接下来,按照以下步骤在安装颜色应用程序的同一 Amazon ECS 集群上,安装带有 Prometheus 监控功能的 CloudWatch 代理。本节中的步骤以桥式网络模式安装 CloudWatch 代理。
您在演练中设置的环境变量 ENVIRONMENT_NAME、AWS_PROFILE 和 AWS_DEFAULT_REGION也将在以下步骤中使用。
安装带有 Prometheus 监控功能的 CloudWatch 代理以进行测试
-
通过输入以下命令,下载 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 -
输入以下命令以创建 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} -
(可选)创建 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 来分析 AWS CLI 的输出结果。有关安装 jq 代理的更多信息,请参阅 jq
$ aws configure
当响应变为 Default output format 时,输入 json。
使用 Prometheus 监控功能卸载 CloudWatch 代理
完成测试后,输入以下命令以通过 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}