如何监控 Fargate 上的 Amazon ECS 任务的高内存利用率问题?

2 分钟阅读
0

我想监控 AWS Fargate 上运行的 Amazon Elastic Container Service (Amazon ECS) 任务的高内存利用率问题。

解决方法

要监控 Fargate 上的 Amazon ECS 任务的高内存利用率问题,请尝试以下选项:

查看 Amazon CloudWatch 指标

Amazon ECS 控制台CloudWatch 控制台中查看 Amazon CloudWatch指标。

注意:系统会自动为 Amazon CloudWatch 内存和 CPU 利用率指标启用任何使用 Fargate 启动类型的 Amazon ECS 服务。

为 Fargate 任务启用 CloudWatch 日志

1.    启用 awslogs 日志驱动程序

2.    将所需的日志配置参数添加到任务定义中

3.    向您的 Amazon ECS 任务执行 AWS Identity and Access Management (IAM) 角色授予向 Amazon CloudWatch Logs 发送日志的权限。

4.    在 CloudWatch 控制台中查看您的日志

注意:您的任务必须进入 Running(正在运行)状态,然后才能查看日志。

使用 Container Insights 来监控内存利用率

您可以使用 CloudWatch Container Insights 来监控 Fargate 任务中每个容器的内存利用率。

1.    打开 CloudWatch 控制台

2.    在导航窗格的 Container Insights 部分,选择 Resources(资源)。

3.    要获取有关某个资源的更多信息,请选择该资源的名称。

注意:任务按每个集群的任务定义进行分组。

4.    选择您要了解更多信息的任务定义的名称。

5.    在 Container Performance(容器性能)部分,选择 Actions(操作),然后选择 View performance logs(查看性能日志)。这将为您的 ECS 集群打开 CloudWatch Logs Insights

6.    在查询框中,输入以下查询,然后选择 Run query(运行查询):

stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
                | filter Type = "Task" | sort period desc, TaskDefinitionFamily |  limit 10

使用 Container Insights 设置高内存利用率警报

1.    打开 CloudWatch 控制台

2.    在导航窗格的 Container Insights 部分,选择 Performance Monitoring(性能监控)。

3.    从下拉菜单中,选择 ECS Tasks(ECS 任务)或 ECS Services(ECS 服务)。

4.    在 Memory Utilization(内存利用率)卡上,选择展开(垂直的点),然后选择 View in Metrics(在指标中查看)。

5.    选择 Graphed metrics(绘成图表的指标)选项卡,然后在 Actions(操作)列中选择您想了解更多信息的任务的钟形图标。

6.    在 Specify metric and conditions(指定指标和条件)页面上,选择所需的值或保留默认值。

7.    在 Conditions(条件)部分,对于 Define the threshold value(定义阈值),输入 70。这会将警报的内存利用率阈值设置为 70%。

8.    选择 Next (下一步)

9.    在 Configure actions(配置操作)页面的 Select an SNS topic(选择 SNS 主题)部分,选择 Create new topic(创建新主题)。

10.    对于 Send a notification to(发送通知到),输入要向其发送警报通知的电子邮件 ID。

11.    选择下一步

12.    在 Add name and description(添加名称和描述)页面上,对于 Alarm name(警报名称),输入警报的名称。 

13.    (可选)对于 Alarm description(警报描述),输入警报的描述。

14.    选择 Next(下一步),然后选择 Create alarm(创建警报)。

15.    按照从 AWS 收到的确认电子邮件中的说明确认订阅。

注意:为帮助您管理 Container Insights 成本,CloudWatch 不会自动利用日志数据创建所有可能的指标。您可以使用 CloudWatch Logs Insights 来分析原始性能日志事件,从而查看其他指标和额外的粒度级别。


相关信息

AWS Fargate 上的 Amazon ECS

Introducing Amazon CloudWatch Container Insights for Amazon ECS

How Amazon ECS manages CPU and memory resources

AWS 官方
AWS 官方已更新 3 年前