监控 Amazon 云计算 (EC2)
编辑监控 Amazon 云计算 (EC2)
编辑弹性计算云 (Amazon EC2) 使您能够按需以虚拟服务器(称为实例)的形式配置计算资源。提供各种实例类型,具有不同的 CPU、内存、存储和网络容量。流行的预配置 Amazon 机器镜像 (AMI) 可用于 Microsoft Windows 和 Linux 发行版,如 Ubuntu、Red Hat Enterprise Linux、CentOS、SUSE、Debian 和 Amazon Linux。Amazon 提供 Amazon Elastic Block Store (EBS) 卷到 EC2 实例,用于持久化块级存储。EC2 还可以与其他 AWS 服务(如自动扩展)一起使用。
Amazon EC2 实例可以在各种位置运行。位置由 AWS 区域和可用区 (AZ) 组成。AZ 是不同的位置,与其他 AZ 的故障隔离,但提供更低的延迟网络连接。每个区域在地理上分散,可以包含一个或多个 AZ。
与大多数 AWS 服务一样,Amazon EC2 将其指标发送到 Amazon CloudWatch。Elastic Amazon EC2 集成 使用 Elastic Agent 从 Amazon CloudWatch 收集指标。
默认情况下,CloudWatch 使用基本监控,以五分钟的间隔发布指标。您可以启用详细监控以将分辨率提高到一分钟,但需要额外付费。要了解如何启用详细监控,请参阅 Amazon EC2 文档。
CloudWatch 不会公开与 EC2 实例内存相关的指标。您可以将 Elastic Agent 安装在 EC2 实例上以收集详细的系统指标。
入门
编辑要收集 EC2 指标,您通常需要安装 Elastic Amazon EC2 集成 并部署 Elastic Agent。
展开 快速指南 以了解操作方法,或者如果您的数据已在 Elasticsearch 中,则跳到下一节。
快速指南:添加数据
Elastic Agent 目前是添加 EC2 指标的首选方法。有关其他方法,请参阅 将数据添加到 Elasticsearch。
仪表板
编辑Kibana 提供了一个完整的可观测性平台,包含开箱即用的仪表板,您可以克隆和增强这些仪表板以满足您的自定义可视化用例。例如,要查看 Kibana 中 EC2 实例指标的概述,请转到 仪表板 应用并导航到 [Metrics AWS] EC2 概述 仪表板。
需要监控的指标
编辑Amazon EC2 提供了大量实例类型选择。监控有关实例的关键指标是确定是否升级、更改或缩减实例的经济高效的方法。
本节列出了您应该监控的关键指标,按类别组织。有关导出字段的完整描述,请参阅 Amazon EC2 集成文档。
以下是您应该监控的关键 CPU 利用率指标以及在这些指标中需要注意的事项
-
aws.ec2.metrics.CPUUtilization.avg
-
这衡量了当前在实例上使用的已分配 EC2 计算单元的百分比。跟踪此指标有助于确保实例的大小适合您的工作负载。如果您看到应用程序性能下降以及持续高水平的 CPU 使用率(没有任何网络、磁盘 I/O 或内存的伴随约束),则 CPU 可能是资源瓶颈。您可以使用应用程序性能监控查看应用程序级数据和/或可能切换到使用具有更多 vCPU 的实例类型。
EC2 实例的 CPU 利用率非常低(例如,连续几周低于 5%)也可以帮助您确定实例是否未充分利用您的工作负载,并可能被替换为较小的实例类型以节省成本。
-
aws.ec2.metrics.CPUCreditBalance.avg
&aws.ec2.metrics.CPUCreditUsage.avg
-
T 实例系列提供基本 CPU 性能,并能够超出基准进行突发。这些实例非常适合通常不占用大量 CPU 但可能在短暂的时间间隔内受益于更高 CPU 容量的应用程序。只要实例的运行速度低于其基本 CPU 性能水平,就会获得积分。
Amazon EC2 CPU 积分指标有助于跟踪您的可用余额和使用情况,以便您了解由于扩展突发而产生的可能费用。监控实例的积分使用情况可以帮助您确定是否需要切换到针对 CPU 密集型工作负载优化的实例类型。
-
aws.ec2.metrics.CPUSurplusCreditBalance.avg
&aws.ec2.metrics.CPUSurplusCreditsCharged.avg
-
配置为无限的突发性能实例可以在任何需要的时候持续保持高 CPU 利用率。T4g、T3a 和 T3 实例默认启动为无限。如果 24 小时内的平均 CPU 使用率超过基准,则您将为剩余积分产生费用。
CPU 剩余积分余额指标跟踪累积余额。CPU 剩余积分费用衡量将导致额外费用的额外积分。
Amazon EC2 为您的实例提供了多种数据存储选项,包括 Amazon EC2 实例存储和 Amazon Elastic Block Store (Amazon EBS)。
实例存储为您的实例提供临时的块级存储,通常用于临时存储信息,例如缓冲区、缓存、临时数据和其他临时内容。实例存储中的数据仅在其关联实例的生命周期内持续存在。当您停止、休眠或终止实例时,实例存储中的每个存储块都将重置。
对于有价值的长期数据,请使用更持久的数据存储,例如 Amazon EBS。附加到实例的 EBS 卷显示为独立于实例生命周期持续存在的存储卷。EBS 卷适合用作文件系统或数据库的主要存储。
CloudWatch EC2 磁盘 I/O 指标仅从实例存储卷收集数据。
CloudWatch EC2 命名空间确实提供了一组 Amazon EBS 磁盘 I/O 指标,但这些指标仅适用于基于 Nitro 系统构建的实例。对于所有其他实例类型,必须通过 Elastic Amazon EBS 集成 监控 EBS 卷的磁盘 I/O。
以下是您应该监控的关键磁盘 I/O 指标以及需要注意的事项
-
aws.ec2.metrics.DiskReadBytes.sum
&aws.ec2.metrics.DiskWriteBytes.sum
-
aws.ec2.metrics.DiskReadBytes.rate
&aws.ec2.metrics.DiskWriteBytes.rate
-
磁盘读取和磁盘写入字节衡量从附加到 EC2 实例的实例存储卷读取和写入的字节数。监控这些指标可以帮助您了解应用程序级问题。从磁盘读取过多的数据可能表明您的应用程序可以受益于缓存层。长期大量的磁盘写入可能意味着请求排队,如果磁盘速度不够快以匹配用例,则可能导致应用程序速度变慢。
每秒磁盘读取字节和每秒磁盘写入字节提供了指定时间段内的平均读取/写入数据大小。
-
aws.ec2.metrics.DiskReadOps.sum
&aws.ec2.metrics.DiskWriteOps.sum
-
aws.ec2.metrics.DiskReadOps.rate
&aws.ec2.metrics.DiskWriteOps.rate
-
磁盘读写操作计数可以帮助您了解平均读写操作次数,从而判断性能下降是否由每秒持续高 I/O 操作数 (IOPS) 导致的瓶颈(因为磁盘请求会进入队列)。如果您的实例卷为 HDD,可以考虑迁移到更快的 SSD 磁盘。
每秒磁盘读写操作计数提供了指定时间段内的平均读写 IOPS。
网络带宽是云服务中的关键资源。EC2 实例可用的网络带宽取决于实例的 vCPU 数量。它还取决于流量的目标位置,其中在区域内实例可获得完整的网络带宽,但在其他区域仅获得 50% 的带宽(基于用例)。带宽范围从 5 到 25 Gbps。最大传输单元 (MTU) 也有限制,即单个数据包中可以发送的最大数据量,范围从 1300 到 1500 字节。但是,当前一代实例类型确实支持高达 9001 MTU 的巨型帧,从而增加了每个数据包的有效负载大小,并可能减少传输大量数据的应用程序的开销。
AWS 提供了各种配置选项,如放置组和增强型网络,以优化网络性能。
以下是您应该监控的关键网络指标以及需要注意的事项
-
aws.ec2.metrics.NetworkIn.sum
&aws.ec2.metrics.NetworkOut.sum
-
aws.ec2.metrics.NetworkIn.rate
&aws.ec2.metrics.NetworkOut.rate
-
这些指标以字节为单位报告 EC2 实例的网络吞吐量。任何网络丢包或波动都可能与应用程序指标相关联,以查找潜在问题的根本原因。任何吞吐量限制都可能表明实例类型与应用程序需求不匹配,尤其对于数据密集型应用程序而言。
在查看一组 EC2 实例数据时,如果网络流量负载存在显著差异,则可能需要使用负载均衡器将负载更均匀地分布到相关实例之间,从而获得更好的性能。
以下是您应该监控的关键状态检查指标以及需要注意的事项
-
aws.ec2.metrics.StatusCheckFailed.avg
-
此检查报告实例是否已通过实例状态检查和系统状态检查。如果实例通过系统状态检查,则此检查返回 0(通过);如果失败,则返回 1(失败)。
Elastic Amazon EC2 集成还会收集重要的云元数据,例如实例名称(
cloud.instance.name=elastic-package-test-33138
)、实例 ID(cloud.instance.id=i-0de58890d94dda2e3
)、账户名称(cloud.account.name=elastic-beats
)、账户 ID(cloud.account.id=428152502467
)、提供商(cloud.provider=aws
)、区域(cloud.region=us-east-1
)、可用区(cloud.availability_zone=us-east-1c
)和实例类型(cloud.machine.type=t1.micro
)。这些元数据有助于对收集到的数据进行分组和过滤,并有助于推动一组相关 EC2 实例的各种使用和性能趋势。Elastic EC2 集成附带一个默认仪表板,显示状态检查、CPU 利用率、磁盘 I/O 和网络吞吐量等关键指标。它还提供按区域、可用区和机器类型进行过滤的功能。
-
aws.ec2.metrics.StatusCheckFailed_Instance.avg
-
此检查监视实例的软件和网络配置。可能导致实例状态检查失败的问题可能包括:网络或启动配置错误、内存耗尽、文件系统损坏、内核不兼容等。当实例状态检查失败时,您通常需要自行解决问题。您可能需要重新启动实例或更改实例配置。要对状态检查失败的实例进行故障排除,请参阅Amazon EC2 文档。
如果实例通过系统状态检查,则此检查返回 0(通过);如果失败,则返回 1(失败)。
-
aws.ec2.metrics.StatusCheckFailed_System.avg
-
此状态检查检测实例的潜在问题,这些问题需要 AWS 介入才能修复。可能导致系统状态检查失败的问题包括:网络连接丢失、系统电源丢失以及物理主机上的硬件/软件问题。对于由 Amazon EBS 支持的实例,您可以自行停止并启动实例,这在大多数情况下会导致实例迁移到新的主机。对于由实例存储支持的实例,您可以终止并替换实例。请注意,实例存储卷是短暂的,并且在实例停止时所有数据都会丢失。
如果实例通过系统状态检查,则此检查返回 0(通过);如果失败,则返回 1(失败)。