EC2 监控和可观测性
介绍
持续监控和可观测性提高了敏捷性,改善了客户体验并降低了云环境的风险。根据维基百科,可观测性 是衡量系统内部状态能从其外部输出中推断出来的程度的指标。可观测性这个术语本身源于控制理论领域,基本上意味着您可以通过了解系统产生的外部信号/输出来推断系统中各组件的内部状态。
监控和可观测性之间的区别在于,监控告诉您系统是否正常工作,而可观测性告诉您系统为什么不正常工作。监控通常是一种被动措施,而可观测性的目标是能够以主动方式改善您的关键绩效指标。一个系统如果没有被观察就无法被控制或优化。通过收集 metrics、日志或 traces 来插桩工作负载,并使用正确的监控和可观测性工具获得有意义的洞察和详细上下文,帮助客户控制和优化环境。

AWS 帮助客户从监控转变为可观测性,使他们能够拥有完整的端到端服务可见性。在本文中,我们重点关注 Amazon Elastic Compute Cloud (Amazon EC2) 以及通过 AWS 原生和开源工具在 AWS 云环境中改善服务监控和可观测性的最佳实践。
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) 是 Amazon Web Services (AWS) 云中高度可扩展的计算平台。Amazon EC2 消除了前期硬件投资的需要,因此客户可以更快地开发和部署应用程序,同时只需为使用的部分付费。EC2 提供的一些关键功能包括称为实例的虚拟计算环境、称为 Amazon Machine Images 的预配置实例模板、以及作为实例类型提供的各种 CPU、内存、存储和网络容量配置。
使用 AWS 原生工具进行监控和可观测性
Amazon CloudWatch
Amazon CloudWatch 是一项监控和管理服务,为 AWS、混合和本地应用程序及基础设施资源提供数据和可操作洞察。CloudWatch 以日志、metrics 和事件的形式收集监控和运营数据。它还提供了在 AWS 和本地服务器上运行的 AWS 资源、应用程序和服务的统一视图。CloudWatch 帮助您获得系统范围的资源利用率、应用程序性能和运营健康状况的可见性。

统一 CloudWatch Agent
统一 CloudWatch Agent 是 MIT 许可证下的开源软件,支持使用 x86-64 和 ARM64 架构的大多数操作系统。CloudWatch Agent 帮助从 Amazon EC2 实例和混合环境中的本地服务器收集系统级 metrics,从应用程序或服务检索自定义 metrics,以及从 Amazon EC2 实例和本地服务器收集日志。

在 Amazon EC2 实例上安装 CloudWatch Agent
命令行安装
CloudWatch Agent 可以通过命令行安装。各种架构和各种操作系统所需的软件包可供下载。创建必要的 IAM 角色,为 CloudWatch Agent 提供从 Amazon EC2 实例读 取信息并将其写入 CloudWatch 的权限。创建所需的 IAM 角色后,您可以在所需的 Amazon EC2 实例上安装并运行 CloudWatch Agent。
AWS 可观测性 Workshop:设置和安装 CloudWatch Agent
通过 AWS Systems Manager 安装
CloudWatch Agent 也可以通过 AWS Systems Manager 安装。创建必要的 IAM 角色,为 CloudWatch Agent 提供从 Amazon EC2 实例读取信息并将其写入 CloudWatch 以及与 AWS Systems Manager 通信的权限。在 EC2 实例上安装 CloudWatch Agent 之前,需要在所需的 EC2 实例上安装或更新 SSM Agent。CloudWatch Agent 可以通过 AWS Systems Manager 下载。可以创建 JSON 配置文件来指定要收集的 metrics(包括自定义 metrics)和日志。创建所需的 IAM 角色和配置文件后,您可以在所需的 Amazon EC2 实例上安装并运行 CloudWatch Agent。