Amazon ECS 集群的示例 App Mesh 工作负载 - Amazon CloudWatch

Amazon ECS 集群的示例 App Mesh 工作负载

要从 Amazon ECS 的示例 Prometheus 工作负载收集指标,您必须在集群中运行 Container Insights。有关安装 Container Insights 的信息,请参阅 在 Amazon ECS 上设置 Container Insights

首先,按照本演练在 Amazon ECS 集群上部署示例颜色应用程序。完成后,您将在端口 9901 上公开 App Mesh Prometheus 指标。

接下来,按照以下步骤在安装颜色应用程序的同一 Amazon ECS 集群上,安装带有 Prometheus 监控功能的 CloudWatch 代理。本节中的步骤以桥式网络模式安装 CloudWatch 代理。

您在演练中设置的环境变量 ENVIRONMENT_NAMEAWS_PROFILEAWS_DEFAULT_REGION也将在以下步骤中使用。

安装带有 Prometheus 监控功能的 CloudWatch 代理以进行测试
  1. 通过输入以下命令,下载 AWS 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
  2. 通过输入以下命令,设置网络模式。

    export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
  3. 输入以下命令以创建 AWS 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}
  4. (可选)创建 AWS 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 CLI 的默认输出格式设置为 JSON,以便 jq 可以对其进行正确分析。

$ aws configure

当响应变为 Default output format 时,输入 json

使用 Prometheus 监控功能卸载 CloudWatch 代理

完成测试后,输入以下命令以通过 AWS 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}