在 Amazon CloudWatch 上为迁移用例创建近乎实时的控制面板

作者 :Sanket Nasre | 202 3

监控 亚马逊云科技 资源的性能指标对于在云中运行的任何业务用例都至关重要。亚马逊云科技 架构完善的框架 最佳实践 建议客户在 亚马逊云科技 上为其基础设施设置可观察性和监控功能。但是,随着客户使用亚马逊云科技的增加,大规模观察和可视化数据和指标以及识别任何性能障碍变得越来越困难。亚马逊云科技 为 系统 定义的 亚马逊云科技 资源提供随时可用的亚马逊 CloudWatch 指标。 客户还可以在亚马逊 CloudWatch 上创建用户定义的 自定义指标。 但是多年来,客户发现,如果没有合适的可视化工具,就很难将所有这些指标集中在一个地方可视化。

在这篇博客文章中,您将学习如何在单个 Amazon CloudWatch 控制面板上可视化多个资源的指标并使其具有可扩展性。我们将在 Amazon CloudWatch 上创建一个以迁移为用例的近乎实时的控制面板。用户定义的指标将从用于迁移的 亚马逊云科技 服务中派生出来。在这篇博客中,我们将讨论如何在 Amazon CloudWatch 控制面板上自动放置和更新系统定义和用户定义的 CloudWatch 指标。

架构

Figure 1. Architecture diagram for creating a near-realtime Amazon CloudWatch Dashboard

这是在 Amazon CloudWatch for Migration 用例上创建近乎实时的控制面板的架构图。在这篇博客中,我们将监控 亚马逊云科技 应用程序迁移服务 (亚马逊云科技 MGN)。亚马逊云科技 MGN 是一项高度自动化的迁移和改进迁移服务,可以将物理、虚拟或任何云服务器 “按原样” 迁移到 亚马逊云科技 云中。

1。 上面的解决方案从一条 Amazon Ev ent Bridge 定时规则开始,该规则每 1 分钟运行一次,用于调用 亚马逊云科技 Lambda 函数。

2。亚马逊云科技 Lambda 函数将运行并从 亚马逊云科技 MGN 收集亚马逊 CloudWatch 指标进行监控。

3。然后,亚马逊云科技 Lambda函数会将这些指标发布到亚马逊CloudWatch控制面板上。查看者将使用此仪表板来查看性能指标或其他统计数据。上面架构图中的红色虚线框可以概括为任何用例。

解决方案概述

1。python 中的 Lambda 代码 针对迁移用例自定义的。您将在此 lambda 函数中使用以下代码将系统定义和用户定义的指标推送到 Amazon CloudWatch 控制面板。

注意 — lambda 函数与 python 3.0 或更高版本兼容。此函数旨在接收来自 亚马逊云科技 MGN 的指标并从中创建自定义 CloudWatch 指标。它旨在创建测试、转换和复制状态自定义指标,并将其推送到 Amazon CloudWatch。然后,lambda 函数正在创建一个 Amazon CloudWatch 控制面板,其中包括 亚马逊云科技 MGN 服务提供的系统定义指标和由 Lambda 函数本身生成的用户定义的自定义指标。 如果您按原样使用上述代码,请确保使用特定的 亚马逊云科技 区域进行 替换,例如 us-east- 1 或 us-west -2 等。

2。压缩上述 Lambda 函数或适用于您的用例的自定义 Lambda 函数,然后将其上传到您选择的 S3 存储桶。将压缩文件命名为 “my-deployment-package.zip”。使用此 链接 来学习如何压缩 python 文件。

3。使用 此处 的 YAML 模板通过 亚马逊云科技 Cloudformation 在步骤 1 中选择的 亚马逊云科技 区域启动基础设施。在此 YAML 模板中, 替换为从步骤 2 派生的 s3 存储桶名称。通过 亚马逊云科技 Cloudformation 部署此 YAML 模板,它将启动 Lambda 函数、亚马逊云科技 Event Bridge 规则以及必要的 Lambda 角色和权限。

确保您选择部署 Cloudformation YAML 模板的 亚马逊云科技 区域与您的 Lambda 函数代码中的区域和步骤 2 中的 S3 存储桶相匹配。

请注意 ,YAML 模板使用访问 亚马逊云科技 MGN 服务所需的策略创建了一个 Lambda 角色。

4。亚马逊云科技 CloudFormation 部署环境后,前往查找服务并搜索 CloudWatch。

5。在左侧导航窗格上,选择 仪表板 ,然后选择 MGN -Dashboard。如果您在 亚马逊云科技 MGN 控制台中添加了源计算机,则总共会看到 5 个小部件。我们将在以下步骤中再添加一个。

6。在右上角,选择 +(加号) 按钮以添加新的控件。

7。选择 数字

8。在搜索栏中搜索 mgn,然后在 自定义命名空间 下选择 亚马逊云科技 MGN

9。选择 “跨所有源服务器”。

10。 选择前两个指标:M achinesFullySynced 和 MachinesSyn cing。 然后选择 图表化指标 选项卡。将这两个指标的统计数据更改为最大值,将周期更改为 1 秒 ,如下所示。选择 “ 创建控件”

11。同样,您可以将其他自定义指标(由 lambda 函数生成)作为控件添加到 Amazon CloudWatch 控制面板。创建后,您可以向该仪表板添加更多指标,从而使其具有可扩展性。Eventbridge 规则每 1 分钟运行一次,以更新此仪表板,这也使其接近实时。

12。将仪表板上显示的事件的时长设置为 自定义(5 m) 间隔,而不是默认(3 小时),以便仪表板仅显示过去 5 分钟内所有指标的数据。


13。选择 “ 保存仪表板”。

结果

CloudWatch 控制面板几乎是实时的,其中包含您为可视化迁移状态而添加的所有指标。
此 CloudWatch 控制面板还具有可扩展性,因为您可以继续添加更多小部件/指标,而无需对现有设置进行任何更改。

结论

我们看到,在 Amazon CloudWatch 上创建近乎实时的控制面板并使其具有可扩展性以向其添加更多指标是多么容易。大部分系统定义的 CloudWatch 指标会自动更新,但本博文中讨论的解决方案也可以用于定期更新 Amazon CloudWatch 控制面板上用户定义的指标。此外,您还可以将此解决方案和一些现有代码重复用于其他非迁移用例。

在这种情况下,Cloudwatch 的费用将很低,但请参阅 CloudWatch 定价 页面以了解自定义用例。

作者简介:

Sanket Nasre

Sanket Nasre 是 亚马逊云科技 行业的高级解决方案架构师,负责迁移。他于 2015 年 1 月加入 亚马逊云科技,与许多客户合作,帮助他们完成向 亚马逊云科技 云的迁移之旅。在工作中,Sanket 喜欢解决复杂的客户问题。在业余时间,他对天文学有着浓厚的兴趣,喜欢学习恒星和行星。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。