使用 Amazon CloudWatch 异常检测为自定义指标创建警报 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon CloudWatch 异常检测为自定义指标创建警报

创建者:Ram Kandaswamy (AWS) 和 Raheem Jiwani (AWS)

环境:生产

技术:管理和治理; DevOps;运营; CloudNative

AWS 服务:亚马逊 CloudWatch

Summary

在 Amazon Web Services (AWS) 云上,您可以使用亚马逊 CloudWatch 创建警报,用于监控指标并发送通知,或者在突破阈值时自动进行更改。

为避免受到静态阈值的限制,您可以根据过去的模式创建警报,并在特定指标超出正常操作窗口时通知您。例如,您可以从 Amazon API Gateway 监控您的 API 的响应时间,并接收有关妨碍您满足服务水平协议(SLA)的异常的通知。

此模式描述了如何对自定义指标使用 CloudWatch 异常检测。该模式向您展示了如何在 Amazon L CloudWatch ogs Insights 中创建自定义指标或使用 AWS Lambda 函数发布自定义指标,然后使用亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 设置异常检测和创建通知。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account。

  • 现有 SNS 主题,可配置以用于发送电子邮件通知。有关此内容的更多信息,请参阅 Amazon SNS 文档中的 Amazon SNS 入门

  • 配置了CloudWatch 日志的现有应用程序。

限制

  • CloudWatch 指标不支持毫秒的时间间隔。有关常规指标和自定义指标粒度的更多信息,请参阅 Amazon CloudWatch 常见问题

架构

图表显示了以下工作流:

CloudWatch 警报启动时使用 Amazon SNS 主题发送电子邮件通知。
  1. 使用日志创建和更新的指标的 CloudWatch 日志将流式传输到 CloudWatch。

  2. 警报根据阈值启动,并向 SNS 主题发送警报。

  3. Amazon SNS 会向您发送一条电子邮件通知。

技术堆栈

  • CloudWatch

  • AWS Lambda

  • Amazon SNS

工具

操作说明

任务描述所需技能

选项 1 - 使用 Lambda 函数创建自定义指标。

下载lambda_function.py文件(附后),然后在 AWS 文档中替换aws-lambda-developer-guide存储库中的示例lambda_function.py文件 GitHub。这为您提供了一个向日志发送自定义指标的 Lambda 函数示例。 CloudWatch Lambda 函数使用 Boto3 API 进行集成。 CloudWatch 

运行 Lambda 函数后,您可以登录 AWS 管理控制台,打开控制台,发布的 CloudWatch 指标将在您发布的命名空间下可用。

DevOps 工程师,AWS DevOps

选项 2-从 CloudWatch 日志组创建自定义指标。

登录 AWS 管理控制台,打开 CloudWatch 控制台,然后选择日志组。选择要为其创建警报的日志组。 

选择操作,然后选择创建指标筛选条件。对于筛选条件模式,输入要使用的筛选条件模式。有关更多信息,请参阅 CloudWatch 文档中的过滤器和模式语法。 

若要测试过滤模式,请在测试模式下输入一个或多个日志事件。每个日志事件必须位于一行内,因为换行符用于在日志事件消息框中分隔日志事件。测试模式后,您可以在指标详细信息下输入指标的名称和值。 

有关创建自定义指标的更多信息和步骤,请参阅 CloudWatch 文档中的为日志组创建指标筛选器

DevOps 工程师,AWS DevOps

为您的自定义指标创建警报。

在 CloudWatch 控制台上,选择警报,然后选择创建警报。选择选择指标,然后在搜索框中输入您之前创建的指标的名称。选择图形化指标选项卡,然后根据您的要求配置选项。

条件下,选择异常检测,而不是静态阈值。这会显示一个基于两个标准默认差的波段。您可以设置阈值并根据需要进行调整。

选择下一步

注意:波段是动态的,取决于数据点的质量。当您开始聚合更多数据时,波段和阈值会自动更新。 

DevOps 工程师,AWS DevOps

设置 Amazon SNS 通知。

通知下方,选择警报处于 ALARMOKINSUFFICIENT_DATA 状态时通知的 SNS 主题。

要使告警为相同告警状态或不同告警状态发送多个通知,请选择添加通知。选择下一步。输入警报的名称和说明。名称只能包含 ASCII 字符。然后选择下一步

预览和创建下方确认信息和条件符合您的要求,然后选择创建警报

DevOps 工程师,AWS DevOps

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip