前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 监控指标解析

Elasticsearch 监控指标解析

作者头像
HaydenGuo
修改2019-12-15 18:37:36
1.9K0
修改2019-12-15 18:37:36
举报
文章被收录于专栏:东隅已逝

1.集群监控

集群监控主要包括两个方面的内容,分别是集群健康情况和集群的运行状态

集群健康状态可以通过以下api获取:

代码语言:javascript
复制
http://ip:9200/_cluster/health?pretty

关键指标说明:

代码语言:javascript
复制
 1status:
 2#集群状态,分为green、yellow和red。 
 3number_of_nodes/number_of_data_nodes:
 4#集群的节点数和数据节点数。 
 5active_primary_shards:
 6#集群中所有活跃的主分片数。 
 7active_shards:
 8#集群中所有活跃的分片数。 
 9relocating_shards:
10#当前节点迁往其他节点的分片数量,通常为0,当有节点加入或者退出时该值会增加。 
11initializing_shards:
12#正在初始化的分片。 
13unassigned_shards:
14#未分配的分片数,通常为0,当有某个节点的副本分片丢失该值就会增加。 
15number_of_pending_tasks:
16#是指主节点创建索引并分配shards等任务,如果该指标数值一直未减小代表集群存在不稳定因素 
17active_shards_percent_as_number:
18#集群分片健康度,活跃分片数占总分片数比例。 
19number_of_pending_tasks:
20#pending task只能由主节点来进行处理,这些任务包括创建索引并将shards分配给节点。

集群状态信息主要包含整个集群的一些统计信息,例如文档数、分片数、资源使用情况等。

集群状态信息可以由以下api获取:

代码语言:javascript
复制
http://ip:9200/_cluster/stats?pretty

关键指标说明:

代码语言:javascript
复制
 1indices.count:
 4#索引总数。 
 5indices.shards.total:
 6#分片总数。 
 7indices.shards.primaries:
 8#主分片数量。 
 9docs.count:
10#文档总数。 
11store.size_in_bytes:
12#数据总存储容量。 
13segments.count:
14#段总数。 
15nodes.count.total:
16#总节点数。 
17nodes.count.data:
18#数据节点数。 
19nodes. process. cpu.percent:
20#节点CPU使用率。 
21fs.total_in_bytes:
22#文件系统使用总容量。 
23fs.free_in_bytes:
24#文件系统剩余总容量。

2.节点监控

节点监控主要针对各个节点,有很多指标对于保证ES集群的稳定运行非常重要。

可以通过以下api获取:

代码语言:javascript
复制
http://ip:9200/_nodes/stats?pretty

关键指标说明:

代码语言:javascript
复制
 1name:
 2#节点名。 
 3roles:
 4#节点角色。 
 5indices.docs.count:
 6#索引文档数。 
 7segments.count:
 8#段总数。 
 9jvm.heap_used_percent:
10#内存使用百分比。 
11thread_pool.{bulk, index, get, search}.{active, queue, rejected}:
12#线程池的一些信息,包括bulk、index、get和search线程池,主要指标有active(激活)线程数,线程queue(队列)数和rejected(拒绝)线程数量。

以下一些指标是一个累加值,当节点重启之后会清零。

代码语言:javascript
复制
 1indices.indexing.index_total:
 2#索引文档数。 
 3indices.indexing.index_time_in_millis:
 4#索引总耗时。 
 5indices.get.total:
 6#get请求数。 
 7indices.get.time_in_millis:
 8#get请求总耗时。 
 9indices.search.query_total:
10#search总请求数。 
11indices.search.query_time_in_millis:
12#search请求总耗时。indices.search.fetch_total:fetch操作总数量。 
13indices.search.fetch_time_in_millis:
14#fetch请求总耗时。 
15jvm.gc.collectors.young.collection_count:
16#年轻代垃圾回收次数。 
17jvm.gc.collectors.young.collection_time_in_millis:
18#年轻代垃圾回收总耗时。 
19jvm.gc.collectors.old.collection_count:
20#老年代垃圾回收次数。 
21jvm.gc.collectors.old.collection_time_in_millis:
22#老年代垃圾回收总耗时。

一些需要计算的指标: 节点监控的计算指标主要分为两类,分别为请求速率指标和请求处理延迟指标,下面作具体介绍。

代码语言:javascript
复制
 1index_per_min:
 2#每分钟索引请求数量。计算公式如下:
 3#索引请求率=(index_total两次采集差值)/(系统时间差值(ms))×60000 (公式1)
 4indexAverge_per_min:
 5#索引请求处理延迟。计算公式如下:
 6#索引延迟=(index_time_in_millis两次采集差值)/(index_total两次采集差值)  (公式2)
 7get_per_min:
 8#每分钟get请求数量,计算公式如(公式1),更改相应参数。 
 9getAverage_per_min:
10#get请求处理延迟,计算公式如(公式2) ,更改相应参数。 
11merge_per_min:
12#每分钟merge请求数量,计算公式如(公式1),更改相应参数。 
13mergeAverage_per_min:
14#merge请求处理延迟,计算公式如(公式2) ,更改相应参数。 
15searchQuery_per_min:
16#每分钟query请求数量,计算公式如(公式1),更改相应参数。 
17searchQueryAverage_per_min:
18#query请求延迟,计算公式如(公式2) ,更改相应参数。 
19searchFetch_per_min:
20#每分钟fetch请求数量,计算公式如(公式1),更改相应参数。 
21searchFetchAverage_per_min:
22#fetch请求延迟,计算公式如(公式2) ,更改相应参数。 
23youngGc_per_min:
24#每分钟young gc数量,计算公式如(公式1),更改相应参数。 
25youngGcAverage_per_min:
26#young gc请求延迟,计算公式如(公式2) ,更改相应参数。 
27oldGc_per_min:
28#每分钟old gc数量,计算公式如(公式1),更改相应参数。 
29oldGcAverage_per_min:
30#old gc请求延迟,计算公式如(公式2) ,更改相应参数。

3.索引监控

索引监控指标主要针对单个索引,不过也可以通过“_all”对集群中所有索引进行监控。

节点监控指标可以通过以下api获取:

代码语言:javascript
复制
http://ip:9200/_stats?pretty

关键指标说明:

代码语言:javascript
复制
1http://ip:9200/_stats?pretty。 
2关键指标说明: 
3indexname.primaries.docs.count:
4#索引文档数量。

以下一些指标是一个累加值,当节点重启之后会清零。

代码语言:javascript
复制
 1indexname.primaries.indexing.index_total:
 2#索引文档数。 
 3indexname.primaries.indexing.index_time_in_millis:
 4#索引总耗时。 
 5indexname.primaries.get.total:
 6#get请求数。 
 7indexname.primaries.get.time_in_millis:
 8#get请求总耗时。 
 9indexname.primaries.search.query_total:
10#search总请求数。 
11indexname.primaries.search.query_time_in_millis:
12#search请求总耗时。indices.search.fetch_total:fetch操作总数量。 
13indexname.primaries.search.fetch_time_in_millis:
14#fetch请求总耗时。 
15indexname.primaries.refresh.total:
16#refresh请求总量。 
17indexname.primaries.refresh.total_time_in_millis:
18#refresh请求总耗时。 
19indexname.primaries.flush.total:
20#flush请求总量。 
21indexname.primaries.flush.total_time_in_millis:
22#flush请求总耗时。

理解了上面的指标

就可以使用Prometheus和Grafana进行监控展示

下面是我们测试环境的Grafana上展示的Elasticsearch集群的状态

可以看到prometheus采集到的的指标信息还是比较全面的

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有暗香盈袖c 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.集群监控
    • 集群健康状态可以通过以下api获取:
      • 关键指标说明:
        • 集群状态信息可以由以下api获取:
          • 关键指标说明:
          • 2.节点监控
            • 可以通过以下api获取:
              • 关键指标说明:
              • 3.索引监控
                • 节点监控指标可以通过以下api获取:
                  • 关键指标说明:
                  相关产品与服务
                  Elasticsearch Service
                  腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档