监控 Amazon 云计算 (EC2)
编辑监控 Amazon 云计算 (EC2)编辑
Elastic Compute Cloud (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 实例内存相关的指标。您可以在 EC2 实例上安装 Elastic Agent 以收集详细的系统指标。
入门编辑
要收集 EC2 指标,您通常需要安装 Elastic Amazon EC2 集成 并部署 Elastic Agent。
展开 快速指南 了解如何操作,或者如果您的数据已在 Elasticsearch 中,请跳到下一节。
快速指南:添加数据
Elastic Agent 目前是添加 EC2 指标的首选方法。有关其他方法,请参阅 将数据添加到 Elasticsearch。
仪表板编辑
{kibana-desc} 例如,要查看 Kibana 中 EC2 实例指标的概述,请转到 仪表板 应用程序并导航到 [指标 AWS] EC2 概述 仪表板。
要监控的指标编辑
Amazon EC2 提供大量实例类型选择。监控实例的关键指标是确定是否升级、更改或缩减实例的经济高效方法。
本节列出了您应该监控的关键指标,按类别组织。有关导出字段的完整描述,请参阅 Amazon EC2 集成文档。
CPU 利用率编辑
以下是您应该监控的关键 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 剩余积分收费指标衡量将导致额外费用的额外积分。
磁盘 I/O编辑
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 System 上构建的实例。对于所有其他实例类型,必须通过 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。
网络edit
网络带宽是云服务中的关键资源。EC2 实例的可用网络带宽取决于实例的 vCPU 数量。它还取决于流量的目的地,其中在区域内实例可获得完整的网络带宽,而在其他区域仅获得 50%,具体取决于用例。带宽范围从 5 到 25 Gbps。最大传输单元 (MTU) 也有限制,即单个数据包中可以发送的最大数据量范围从 1,300 到 1,500 字节。然而,当前一代实例类型支持高达 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 实例数据时,如果您发现网络流量负载存在很大差异,则可能需要使用负载均衡器将负载更均匀地分布到相关实例,并能够实现更好的性能。
状态检查edit
以下列出了您应该监控的关键状态检查指标以及需要关注的内容
-
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(失败)。