使用 Amazon CloudWatch 监控集群指标 - Amazon Elasticsearch Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用 Amazon CloudWatch 监控集群指标

解释运行状况控制面板

控制台中的 Instance health (实例运行状况) 选项卡使用框图来提供每个 Amazon ES 节点的运行状况的概览可见性。Elasticsearch

  • 每个彩色框显示指定时间段内节点的值范围。

  • 蓝框表示与其他节点一致的值。红框表示异常值。

  • 每个框中的白线显示节点的当前值。

  • 每个框两侧的“细线”显示该时间段内所有节点的最小值和最大值。

Amazon ES 域每分钟向 Amazon CloudWatch 发送一次性能指标。如果您使用通用型 EBS 卷或磁性 EBS 卷,则 EBS 卷指标将仅每五分钟更新一次。要查看这些指标,请使用 控制台中的 Cluster health (集群运行状况)Instance health (实例运行状况)Amazon Elasticsearch Service 选项卡。这些指标是免费提供的。

如果对您的域进行配置更改,则 Cluster health (集群运行状况)Instance health (实例运行状况) 选项卡中各个实例的列表的大小通常会在短时间内增长一倍,然后再恢复为正确数量。有关此行为的说明,请参阅配置更改

所有指标都在 AWS/ES 命名空间中。各个节点的指标位于 ClientId, DomainName, NodeId 维度中。集群指标位于 Per-Domain, Per-Client Metrics 维度中。一些节点指标在集群级别聚合,因此同时包含在这两个维度中。该服务会将指标存档两周,然后再丢弃。

群集指标

Amazon Elasticsearch Service 为集群提供以下指标。

指标 描述
ClusterStatus.green

值为 1 指示将所有索引分片分配给集群中的节点。

相关统计数据:最高

ClusterStatus.yellow 值为 1 指示将所有索引的主要分片分配给集群中的节点,但是至少有一个索引的分片副本不是如此。有关更多信息,请参阅黄色集群状态

相关统计数据:最高

ClusterStatus.red

值为 1 指示至少一个索引的主分片和副本分片未分配给集群中的节点。有关更多信息,请参阅红色集群状态

相关统计数据:最高

Nodes

集群中的节点数,包括专用主节点和 Amazon ES 节点。UltraWarm有关更多信息,请参阅配置更改

相关统计数据:最高

SearchableDocuments

跨集群中所有数据节点的可搜索文档的总数。

相关统计数据:Minimum、Maximum、Average

DeletedDocuments

跨集群的所有数据节点已标记为删除的文档总数。这些文档不会再出现在搜索结果中,但 Elasticsearch 只会在分段合并期间将已删除的文档从磁盘中移除。此指标在提出删除请求后会增加,在分段合并后会减少。

相关统计数据:Minimum、Maximum、Average

CPUUtilization

集群中数据节点的 CPU 利用率百分比。最大值显示 CPU 利用率最高的节点。平均值表示集群中的所有节点。此指标也可用于单独的节点。

相关统计数据:Maximum、Average

FreeStorageSpace

集群中数据节点的可用空间。Sum 显示集群的总可用空间,但您必须保留一分钟的时间来获取准确的值。MinimumMaximum 分别显示可用空间最多和最少的节点。此指标也可用于单个节点。Amazon ES 在此指标达到 ClusterBlockException 时引发 0。 要恢复,您必须删除索引,添加更大的实例,或将基于 EBS 的存储添加到现有实例。要了解更多信息,请参阅缺少可用存储空间

控制台在 Amazon ES 中显示此值。GiB 控制台在 Amazon CloudWatch 中显示它。MiB

注意

FreeStorageSpace 将始终小于 Elasticsearch _cluster/stats API 提供的值。Amazon ES 在每个实例上为内部操作预留一个存储空间百分比。

相关统计数据:Minimum、Maximum、Average、Sum

ClusterUsedSpace

集群的已使用空间总量。您必须保留一分钟的时间来获取准确值。

控制台在 Amazon ES 中显示此值。GiB 控制台在 Amazon CloudWatch 中显示它。MiB

相关统计数据:Minimum、Maximum

ClusterIndexWritesBlocked

指示您的集群是接受还是阻止传入的写入请求。值为 0 表示集群接受请求。值为 1 表示阻止请求。

一些常见因素包括:FreeStorageSpace 过低或 JVMMemoryPressure 过高。为了缓解这一问题,可以考虑增加磁盘空间或扩展集群。

相关统计数据:最高

JVMMemoryPressure

用于集群中所有数据节点的 Java 堆的最大百分比。Amazon ES 将实例的一半 RAM 用于 Java 堆,最大堆大小为 32 GiB。您最多可以将实例的 RAM 垂直扩展至 64GiB,此时可以通过添加实例水平扩展。请参阅建议的 CloudWatch 警报

相关统计数据:最高

AutomatedSnapshotFailure

集群的失败的自动快照的数量。值 1 指示在过去的 36 个小时内未为域拍摄自动快照。

相关统计数据:Minimum、Maximum

CPUCreditBalance

集群中的数据节点可用的剩余 CPU 积分。一个 CPU 积分提供一个完整 CPU 核心在一分钟内的性能。有关更多信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html 开发人员指南 中的 Amazon EC2CPU 积分。此指标仅适用于 T2 实例类型。

相关统计数据:最低

KibanaHealthyNodes

Kibana 运行状况检查。值为 1 表示行为正常。值为 0 表示无法访问 Kibana。在大多数情况下,Kibana 的运行状况反映了集群的运行状况。

相关统计数据:最低

KMSKeyError

值 1 表示已禁用用于加密静态数据的 KMS 客户主密钥。要将域还原为正常操作,请重新启用该密钥。控制台仅对该加密静态数据的域显示此指标。

相关统计数据:Minimum、Maximum

KMSKeyInaccessible

值 1 表示已删除用于加密静态数据的 KMS 客户主密钥或已撤销其对 Amazon ES 的授权。您无法恢复处于此状态的域。但如果您具有手动快照,则可以使用它将该域的数据迁移到新域。控制台仅对该加密静态数据的域显示此指标。

相关统计数据:Minimum、Maximum

InvalidHostHeaderRequests

针对 Elasticsearch 集群的包含无效(或缺少)主机标头的 HTTP 请求数。有效请求包括域主机名作为主机标头值。Amazon ES 拒绝对没有限制性访问策略的公共访问域的无效请求。我们建议对所有域应用限制性访问策略。

如果您看到此指标的较大值,请确认您的 Elasticsearch 客户端在其请求中包含域主机名(例如,而不是其 IP 地址)。

相关统计数据:Sum

ElasticsearchRequests

对 Elasticsearch 集群发出的请求数。

相关统计数据:Sum

2xx, 3xx, 4xx, 5xx

导致指定的 HTTP 响应代码(2xx、3xx、4xx、5xx)的对域的请求数。

相关统计数据:Sum

专用主节点指标

Amazon Elasticsearch Service 为专用主节点提供以下指标。

指标 描述
MasterCPUUtilization

专用主节点使用的 CPU 资源的最大百分比。建议在此指标达到 60% 时增加实例类型的大小。

相关统计数据:Average

MasterFreeStorageSpace

此指标不相关,可以被忽略。该服务不使用主节点作为数据节点。

MasterJVMMemoryPressure

用于集群中所有专用主节点的 Java 堆的最大百分比。建议在此指标达到 85% 时迁移到更大的实例类型。

相关统计数据:最高

MasterCPUCreditBalance

集群中专用主节点可用的剩余 CPU 积分。一个 CPU 积分提供一个完整 CPU 核心在一分钟内的性能。有关更多信息,请参阅 https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html 开发人员指南 中的 Amazon EC2CPU 积分。此指标仅适用于 T2 实例类型。

相关统计数据:最低

MasterReachableFromNode

MasterNotDiscovered 运行状况检查异常。值为 1 表示行为正常。值为 0 表示 /_cluster/health/ 失败。

失败意味着主节点已停止或无法访问。这通常是由网络连接问题或 AWS 依赖问题导致的。

相关统计数据:最低

MasterSysMemoryUtilization

使用中的主节点内存的百分比。

相关统计数据:最高

EBS 卷指标。

Amazon Elasticsearch Service 为 EBS 卷提供以下指标。

指标 描述
ReadLatency

EBS 卷上读取操作的延迟(以秒为单位)。

相关统计数据:Minimum、Maximum、Average

WriteLatency

EBS 卷上写入操作的延迟(以秒为单位)。

相关统计数据:Minimum、Maximum、Average

ReadThroughput

EBS 卷上读取操作的吞吐量(以字节/秒为单位)。

相关统计数据:Minimum、Maximum、Average

WriteThroughput

EBS 卷上写入操作的吞吐量(以字节/秒为单位)。

相关统计数据:Minimum、Maximum、Average

DiskQueueDepth

针对 EBS 卷的待处理输入和输出 (I/O) 请求的数量。

相关统计数据:Minimum、Maximum、Average

ReadIOPS

针对 EBS 卷上的读取操作的每秒输入和输出 (I/O) 操作数。

相关统计数据:Minimum、Maximum、Average

WriteIOPS

针对 EBS 卷上的写入操作的每秒输入和输出 (I/O) 操作数。

相关统计数据:Minimum、Maximum、Average

实例指标

Amazon Elasticsearch Service 为域中的每个实例提供以下指标。Amazon ES 还聚合这些实例指标以深入了解总体集群运行状况。您可以使用控制台中的 Data samples (数据样本) 统计数据验证此行为。请注意,下表中的每个指标对于节点 集群都有相关的统计数据。

重要

的不同版本使用不同的线程池来处理对 Elasticsearch API 的调用。_indexElasticsearch 1.5 和 2.3 使用索引线程池。Elasticsearch 5.x、6.0 和 6.2 使用批量线程池。 6.3 及更高版本使用写入线程池。目前,Amazon ES 控制台不包含批量线程池的图形。

指标 描述
IndexingLatency

分片完成索引操作所需的平均时间,以毫秒为单位。

相关节点统计数据:Average

相关集群统计数据:Average、Maximum

IndexingRate

每分钟的索引操作数。对 _bulk API 的单次调用,该 API 添加两个文档并将两个计数更新为四个操作,这可在一个或多个节点中扩散。如果该索引有一个或多个副本,集群中的其他节点也会记录总计四个索引编制操作。文档删除不计入此指标。

相关节点统计数据:Average

相关集群统计数据:Average、Maximum、Sum

SearchLatency

数据节点上的分片完成搜索操作所需的平均时间,以毫秒为单位。

相关节点统计数据:Average

相关集群统计数据:Average、Maximum

SearchRate

数据节点上所有分片的每分钟搜索请求总数。对 _search API 的单次调用可能会从许多不同的分片返回结果。如果这些分片中有 5 个位于一个节点上,则节点会为此指标报告 5 次,即使客户只发出一次请求也是如此。

相关节点统计数据:Average

相关集群统计数据:Average、Maximum、Sum

SysMemoryUtilization

使用中的实例内存的百分比。此指标的值较高是正常的,通常不表示集群存在问题。有关潜在性能和稳定性问题的更好指示,请参阅 JVMMemoryPressure 指标。

相关节点统计数据:Minimum、Maximum、Average

相关集群统计数据:Minimum、Maximum、Average

JVMGCYoungCollectionCount

“年轻代”垃圾回收的运行次数。大量不断增长的运行数对于集群操作来说是正常的。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

JVMGCYoungCollectionTime

集群执行“年轻代”垃圾回收所花费的时间,以毫秒为单位。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

JVMGCOldCollectionCount

“年老代”垃圾回收的运行次数。在具有足够资源的集群中,此数字应保持很小并且不会频繁增长。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

JVMGCOldCollectionTime

集群执行“年老代”垃圾回收所花费的时间,以毫秒为单位。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

ThreadpoolForce_mergeQueue

强制合并线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

ThreadpoolForce_mergeRejected

强制合并线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum

ThreadpoolForce_mergeThreads

强制合并线程池的大小。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolIndexQueue

索引线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群。索引队列的最大大小为 200。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

ThreadpoolIndexRejected

索引线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum

ThreadpoolIndexThreads

索引线程池的大小。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolSearchQueue

搜索线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群。搜索队列的最大大小为 1000。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

ThreadpoolSearchRejected

搜索线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum

ThreadpoolSearchThreads

搜索线程池的大小。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolBulkQueue

批量线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum、Maximum、Average

ThreadpoolBulkRejected

批量线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群。

相关节点统计数据:最高

相关集群统计数据:Sum

ThreadpoolBulkThreads

批量线程池的大小。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolWriteThreads

写入线程池的大小。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolWriteRejected

写入线程池中的已拒绝任务数。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

ThreadpoolWriteQueue

写入线程池中的排队任务数。

相关节点统计数据:最高

相关集群统计数据:Average、Sum

UltraWarm 指标

Amazon Elasticsearch Service 为 UltraWarm 节点提供以下指标。

指标 描述
WarmCPUUtilization

集群中 UltraWarm 节点的 CPU 使用率百分比。最大值显示 CPU 利用率最高的节点。平均值表示集群中的所有 UltraWarm 节点。此指标也可用于单独的 UltraWarm 节点。

相关统计数据:Maximum、Average

WarmFreeStorageSpace

中的可用温存储空间量。MiB 由于 UltraWarm 使用 Amazon S3 而不是连接的磁盘,因此 Sum 是唯一相关的统计数据。您必须保留一分钟的时间来获取准确值。

相关统计数据:Sum

WarmJVMMemoryPressure

用于 UltraWarm 节点的 Java 堆的最大百分比。

相关统计数据:最高

WarmSearchableDocuments

跨集群中所有温索引的可搜索文档的总数。您必须保留一分钟的时间来获取准确值。

相关统计数据:Sum

WarmSearchLatency

节点上的分片完成搜索操作所需的平均时间,以毫秒为单位。UltraWarm

相关节点统计数据:Average

相关集群统计数据:Average、Maximum

WarmSearchRate

节点上所有分片的每分钟搜索请求总数。UltraWarm对 _search API 的单次调用可能会从许多不同的分片返回结果。如果这些分片中有 5 个位于一个节点上,则节点会为此指标报告 5 次,即使客户只发出一次请求也是如此。

相关节点统计数据:Average

相关集群统计数据:Average、Maximum、Sum

WarmStorageSpaceUtilization

集群使用的热存储空间总量。控制台在 Amazon ES 中显示此值。GiB 控制台在 Amazon CloudWatch 中显示它。MiB

相关统计数据:Max

HotStorageSpaceUtilization

集群使用的热存储空间总量。

相关统计数据:Max

WarmSysMemoryUtilization

使用中的温节点内存的百分比。

相关统计数据:最高

HotToWarmMigrationQueueSize

当前等待从热存储迁移到温存储的索引数。

相关统计数据:最高

WarmToHotMigrationQueueSize

当前等待从温存储迁移到热存储的索引数。

相关统计数据:最高

HotToWarmMigrationFailureCount

热到温迁移失败的总数。

相关统计数据:Sum

HotToWarmMigrationForceMergeLatency

迁移过程的强制合并阶段的平均延迟。如果此阶段持续耗时太长,请考虑增加 index.ultrawarm.migration.force_merge.max_num_segments

相关统计数据:Average

HotToWarmMigrationSnapshotLatency

迁移过程的快照阶段的平均延迟。如果此阶段持续耗时太长,请确保您的分片在整个群集中的大小和分配适当。

相关统计数据:Average

HotToWarmMigrationProcessingLatency

成功的热迁移到温迁移的平均延迟, 包括在队列中花费的时间。此值是完成迁移过程的强制合并、快照和分片重新定位阶段所需的时间之和。

相关统计数据:Average

HotToWarmMigrationSuccessCount

成功的从热迁移到温迁移的总数。

相关统计数据:Sum

HotToWarmMigrationSuccessLatency

成功的热迁移到温迁移的平均延迟,包括队列中花费的时间。

相关统计数据:Average

警报指标

Amazon Elasticsearch Service 为警报功能提供了以下指标。

指标 描述
AlertingDegraded

值为 1 表示警报索引为红色,或一个或多个节点未按计划运行。值为 0 表示行为正常。

相关统计数据:最高

AlertingIndexExists

值为 1 表示 .opendistro-alerting-config 索引存在。值为 0 表示该索引不存在。在您首次使用警报功能之前,此值将保持为 0。

相关统计数据:最高

AlertingIndexStatus.green

索引的运行状况。值为 1 表示绿色。值为 0 表示索引不存在或不是绿色。

相关统计数据:最高

AlertingIndexStatus.red

索引的运行状况。值为 1 表示红色。值为 0 表示索引不存在或不是红色。

相关统计数据:最高

AlertingIndexStatus.yellow

索引的运行状况。值为 1 表示黄色。值为 0 表示索引不存在或不是黄色。

相关统计数据:最高

AlertingNodesNotOnSchedule

值为 1 表示某些作业未按计划运行。值为 0 表示所有警报作业都按计划运行(或警报作业不存在)。检查 Amazon ES 控制台或发出 _nodes/stats 请求,以查看是否有节点显示高资源使用率。

相关统计数据:最高

AlertingNodesOnSchedule

值为 1 表示所有警报作业都按计划运行(或警报作业不存在)。值为 0 表示某些作业未按计划运行。

相关统计数据:最高

AlertingScheduledJobEnabled

值为 1 表示 opendistro.scheduled_jobs.enabled 集群设置为 true。值为 0 表示该设置为 false,并且计划的作业已禁用。

相关统计数据:最高

异常检测指标

Amazon Elasticsearch Service 为异常检测功能提供以下指标。

指标 描述
AnomalyDetectionPluginUnhealthy

值为 1 表示异常检测插件无法正常工作,或者因为故障次数太多,或者因为它使用了一个红色的索引。值为 0 表示插件正按预期工作。

相关统计数据:最高

AnomalyDetectionRequestCount

检测异常的请求数。

相关统计数据:Sum

AnomalyDetectionFailureCount

检测异常的失败请求数。

相关统计数据:Sum

AnomalyResultsIndexStatusIndexExists

值为 1 表示 .opendistro-anomaly-results 别名指向的索引存在。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

AnomalyResultsIndexStatus.red

值为 1 表示 .opendistro-anomaly-results 别名指向的索引为红色。值为 0 表示不是。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

AnomalyDetectorsIndexStatusIndexExists

值为 1 表示 .opendistro-anomaly-detectors 索引存在。值为 0 表示该索引不存在。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

AnomalyDetectorsIndexStatus.red

值为 1 表示 .opendistro-anomaly-detectors 索引为红色。值为 0 表示不是。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

ModelsCheckpointIndexStatusIndexExists

值为 1 表示 .opendistro-anomaly-checkpoints 索引存在。值为 0 表示该索引不存在。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

ModelsCheckpointIndexStatus.red

值为 1 表示 .opendistro-anomaly-checkpoints 索引为红色。值为 0 表示不是。在首次使用异常检测功能之前,此值将保持为 0。

相关统计数据:最高

SQL 指标

Amazon Elasticsearch Service 为 SQL 支持提供以下指标。

指标 描述
SQLFailedRequestCountByCusErr

由于客户端问题而失败的对 _opendistro/_sql API 的请求数。例如,请求可能会因 IndexNotFoundException 返回 HTTP 状态代码 400。

相关统计数据:Sum

SQLFailedRequestCountBySysErr

由于服务器问题或功能限制而失败的对 _opendistro/_sql API 的请求数。例如,请求可能会因 VerificationException 返回 HTTP 状态代码 503。

相关统计数据:Sum

SQLRequestCount

_opendistro/_sql API 的请求数。

相关统计数据:Sum

SQLDefaultCursorRequestCount

类似于 SQLRequestCount,但仅统计分页请求。

相关统计数据:Sum

SQLUnhealthy

值为 1 表示 SQL 插件将返回 5xx 响应代码或将无效的查询 DSL 传递到 Elasticsearch 来响应特定请求。其他请求将继续成功。值为 0 表示最近未失败。如果您看到持续值为 1,请排查您的客户端对插件发出的请求的问题。

相关统计数据:最高

KNN 指标

Amazon Elasticsearch Service 包括 KNN 的指标。有关每个指标的摘要,请参阅 Open Distro for Elasticsearch 文档

Amazon Elasticsearch Service 为跨集群搜索提供以下指标。

源域指标

指标 维度 描述
CrossClusterOutboundConnections

ConnectionId

连接的节点数。如果响应中包含一个或多个跳过的域,则可使用此指标跟踪任何运行状况不佳的连接。如果此数值降至 0,则连接运行状况不佳。

CrossClusterOutboundRequests

ConnectionId

发送到目标域的搜索请求数。用于检查跨集群搜索请求的负载是否使域不堪重负,将此指标的任何峰值与任何 JVM/CPU 峰值相关联。

目标域指标

指标 维度 描述
CrossClusterInboundRequests

ConnectionId

从源域接收的传入连接请求数。

在您意外丢失连接时添加 CloudWatch 警报。有关创建警报的步骤,请参阅基于静态阈值创建 CloudWatch 警报

学习对 指标排名

Amazon Elasticsearch Service 为学习排名提供以下指标。

指标 描述
LTRRequestTotalCount

排名请求的总数。

LTRRequestErrorCount

失败请求的总计数。

LTRStoreIndexIsRed

跟踪运行插件所需的索引之一是否为红色。

LTRMemoryUsage

插件使用的总内存。