阿里云Elasticsearch(简称ES)对运行中的ES集群,提供了多项监控指标(例如集群状态、集群查询QPS、节点CPU使用率、节点磁盘使用率等),用来监测集群的运行状况。您可以根据这些指标实时了解集群服务的运行状况,及时处理可能存在的风险,保障集群的稳定运行。

集群监控指标概览

集群监控指标详情

阿里云ES集群的监控指标包含了集群状态集群查询QPS(Count/Second)集群写入QPS(Count/Second)节点CPU使用率(%)节点磁盘使用率(%)节点HeapMemory使用率(%)节点load_1mFullGc次数(个)Exception次数(个)以及快照状态

集群状态

集群状态监控项展示了对应阿里云ES的集群健康度,数值为0.00时表示正常。此监控项必须配置,配置方法请参见配置云监控报警

当监控项数值不为0.00(基本信息页面的集群状态为非绿色)时,表示集群状态异常,常见原因如下:
  • 监控期间节点的CPU或HeapMemory使用率过高,甚至达到100%。
  • 监控期间节点的磁盘使用率过高(例如节点磁盘使用率超过85%),甚至达到100%。
  • 监控期间节点的load_1m负载过高。
  • 监控期间阿里云ES集群中的索引健康度出现过非健康(非绿色)状态。
各监控项数值含义如下。
数值 颜色 状态 备注
2.00 红色 不是所有的主要分片都可用。 表示该集群中某个或者某几个索引存在主分片丢失(unassigned)的情况。
1.00 黄色 所有主要分片可用,但不是所有复制分片都可用。 表示该集群中某个或者某几个索引存在副本分片丢失(unassigned)的情况。
0.00 绿色 所有主要分片和复制分片都可用。 表示该集群中所有的索引都很健康,不存在丢失(unassigned)的分片。
说明 表中的颜色是指在实例的基本信息页面所看到的集群状态的颜色。

集群查询QPS(Count/Second)

注意 如果查询QPS流量存在较大突增,可能引起CPU或HeapMemory使用率过高或load_1m负载过高,从而影响阿里云ES服务,请尽量避免这种情况。

集群查询QPS监控项展示了对应阿里云ES集群每秒执行的查询QPS个数。

查询QPS和需要查询索引的主分片个数有关。例如需要查询的索引有5个主分片,则一次查询请求对应5个QPS。

集群写入QPS(Count/Second)

注意 如果写入QPS流量存在较大突增,可能引起CPU或HeapMemory使用率过高或load_1m负载过高,从而影响阿里云ES服务,请尽量避免这种情况。

集群写入QPS监控项展示了对应阿里云ES集群每秒写入文档的数量。

如果在1秒内,客户端向阿里云ES集群发送1个只包含单个文档的写入请求,则对应1个写入QPS。如果1秒内发送了多个写入请求,则进行累加统计。

如果在1秒内通过_bulk API在一个写入请求中批量写入多个文档,则写入QPS参考该请求中批量推送的总文档个数。如果1秒内发送了多个_bulk API批量写入请求,则进行累加统计。

节点CPU使用率(%)

节点CPU使用率监控项展示了阿里云ES集群中各节点的CPU使用率百分比,当CPU使用率比较高或接近100%时会影响阿里云ES服务。

当监控项数值存在突增或波动比较大时,服务异常,常见原因如下:
  • 监控期间查询QPS写入QPS流量存在突增或波动比较大的情况。
  • 监控期间存在个别慢查询或慢写入请求。

    此情况下,查询和写入QPS流量波动比较小或不明显,可在阿里云ES控制台中的日志查询页面,单击searching慢日志进行查看分析。

  • 监控期间该阿里云ES集群中存在大量索引或总分片数量非常多。

    由于阿里云ES会监控集群中的索引并写入日志,因此当总索引或总分片个数过多时,容易引起CPU或HeapMemory或load_1m负载过高。

  • 监控期间在该阿里云ES集群上执行过Merge操作。

    Merge操作会消耗CPU资源,对应节点的Segment Count会出现突降,可在Kibana控制台中节点的Overview页面查看。

  • 监控期间执行过GC操作。

    GC操作会尝试释放内存(例如FULL GC),消耗CPU资源。可能会导致CPU使用率突增。

  • 监控期间执行过定时任务,例如数据备份任务或其它自定义的任务。

节点磁盘使用率(%)

节点磁盘使用率监控项展示了对应阿里云ES集群中各节点的磁盘使用率百分比,节点磁盘使用率必须控制在85%以下,强烈建议您配置该监控项。否则可能会出现以下情况,影响阿里云ES服务:
  • 默认数据节点的磁盘使用率超过85%,会导致新的shard无法分配,可能会影响阿里云ES服务。
  • 默认数据节点的磁盘使用率超过90%,阿里云ES会尝试将对应节点中的shard迁移到其它磁盘使用率比较低的数据节点中,可能会影响阿里云ES服务。
  • 默认数据节点的磁盘使用率超过95%,系统会对阿里云ES集群中的每个索引强制设置read_only_allow_delete属性,此时索引将无法写入数据,只能读取和删除对应索引,可能会影响阿里云ES服务。
注意 磁盘使用率报警阈值建议控制在75%以下,不要超过80%。发生报警时,可以提前进行磁盘、节点扩容或清理索引数据等操作,防止影响阿里云ES服务。

节点HeapMemory使用率(%)

节点HeapMemory使用率监控项展示了对应阿里云ES集群中各节点的HeapMemory使用率百分比。当HeapMemory使用率比较高或存在比较大的内存对象时,会影响阿里云ES服务,也会自动触发GC操作。

当监控项数值存在突增或波动比较大时,服务异常,常见原因如下:
  • 监控期间查询QPS写入QPS流量存在突增或波动比较大的情况。
  • 监控期间存在个别慢查询或慢写入请求。

    此情况下,查询和写入QPS流量波动比较小或不明显,可在阿里云ES控制台中的日志查询页面,单击searching慢日志进行查看分析。

  • 监控期间存在大量慢查询或慢写入请求。

    此情况下,查询和写入QPS流量波动比较大或很明显,可在阿里云ES控制台中的日志查询页面,单击indexing慢日志进行查看分析。

  • 监控期间该阿里云ES集群中存在大量索引或总分片数量非常多。

    由于阿里云ES会监控集群中的索引并写入日志,因此当总索引或总分片个数过多时,容易引起CPU或HeapMemory或load_1m负载过高。

  • 监控期间在该阿里云ES集群上执行过Merge操作。

    Merge操作会消耗CPU资源,对应节点的Segment Count会出现突降,可在Kibana控制台中节点的Overview页面查看。

  • 监控期间执行过GC操作。

    GC操作会尝试释放内存(例如FULL GC),消耗CPU资源。可能会导致HeapMemory使用率突降。

  • 监控期间执行过定时任务,例如数据备份任务或其它自定义的任务。

节点load_1m

节点load_1m监控项展示了对应阿里云ES集群中各节点在1分钟内的负载情况,表示各节点的系统繁忙程度。该监控项的正常数值应该低于当前阿里云ES节点规格的CPU核数。

当监控项数值超过当前阿里云ES节点规格的CPU核数时,服务异常,常见原因如下:
  • 监控期间节点的CPU、HeapMemory使用率高或为100%。
  • 监控期间查询QPS写入QPS流量存在突增或上涨比较大的情况。
  • 监控期间存在耗时比较大的慢查询。

    可能存在个别慢查询或者大量慢查询,可在阿里云ES控制台中的日志查询页面,打开对应日志进行查看分析。

以单核的阿里云ES节点为例,监控项数值说明如下:
  • 节点load_1m<1:没有等待的进程。
  • 节点load_1m=1:系统无额外的资源运行更多的进程。
  • 节点load_1m>1:进程拥堵,等待资源。

FullGc次数(个)

警告 当系统出现频繁FULL GC时,会影响阿里云ES服务。

FullGc次数监控项展示了对应阿里云ES集群中1分钟内的GC总次数。

当监控项数值不为0时,服务异常,常见原因如下:

  • 监控期间HeapMemory使用率比较高。
  • 监控期间存在比较大的内存对象。

Exception次数(个)

Exception次数监控项展示了对应阿里云ES集群的主日志中,一分钟内出现的警告级别日志的总个数。

当监控项数值不为0时,服务异常,常见原因如下:

  • 监控期间查询请求可能存在异常。
  • 监控期间写入请求可能存在异常。
  • 监控期间阿里云ES执行任务时,可能遇到异常。
  • 监控期间执行过GC操作。
说明
  • 在阿里云ES控制台中的日志查询页面,单击主日志。在主日志页面,根据时间点查看详细异常信息,并分析异常原因。
  • 如果主日志中有GC记录,也会在Exception次数监控项中进行统计展示。

快照状态

快照状态监控项展示了对应阿里云ES控制台中的自动备份功能的快照状态。当监控项数值为-1或0时,表示服务正常。

监控项数值为2时,服务异常,常见原因如下:

  • 节点磁盘使用率很高或接近100%。
  • 阿里云ES集群不健康。
监控项的数值含义如下:
  • 0:表示有快照。
  • -1:表示没有快照。
  • 1:表示正在进行快照。
  • 2:表示快照任务失败。