美文网首页
Elasticsearch的集群节点监控

Elasticsearch的集群节点监控

作者: 代码的搬运工 | 来源:发表于2019-12-26 14:15 被阅读0次

在Elasticsearch的运行期间,一个很重要的方面就是监控。这使得系统管理员能够检测并预防可能性的问题,或至少知道失败时会发生什么。Elasticsearch提供了非常详细的信息,使你能够检查和监控单个节点或一个整体的集群。包括集群的健康值、有关服务器的信息、节点信息、索引和分片信息等。对Elasticsearch监控的API主要有三类:第一类是集群相关的,以_cluster开头;第二类是监控节点相关的,以_nodes开头,第三类是任务相关的,以_tasks开头。

1、集群健康值

集群健康值可以通过集群健康检查API _cluster/health得到简单情况。

请求:GET http://127.0.0.1:9200/_cluster/health

如果请求的后面加上索引的名称,则可以得到这个索引的健康检查情况。

请求:GET http://127.0.0.1:9200/_cluster/health/secisland

返回值中,status字段提供的值反应了集群整体的健康程度,它的状态是由系统中最差的分片决定的。值的意义如下:

1) green:所有的主分片和副本分片都处于活动状态。

2) yellow:所有的朱分配都处于活动状态,但是并不是所有的副本分片都处于活动状态。

3) red:不是所有的主分片都处于活动状态。

2、集群状态

整个集群的综合状态信息是可以通过_cluster/state参数查询的。

请求:GET http://127.0.0.1:9200/_cluster/state

默认情况下,集群状态请求的是主节点的状态。在state后面增加metadata只请求索引结构相关的信息,如果后面加上具体的索引,则只请求这个具体索引结构相关的信息。

3、集群统计

集群统计API _cluster/stats可以从一个集群的角度来统计集群状态。它返回两个最基本的信息,一个是索引的信息,比如分片的数量、存储的大小、内存的使用等;另一个是集群节点的信息,比如节点数量、角色、操作系统信息、JVM版本、内存使用率、CPU和插件的安装信息。

请求:GET http://127.0.0.1:9200/_cluster/stats

4、集群任务管理

集群任务管理接口是2.3.0新增接口,这个接口是实验性质的,未来有可能会改变。

请求:GET http://127.0.0.1:9200/_tasks

请求:GET http://127.0.0.1:9200/_tasks?nodes=nodeId1,nodeId2

请求:GET http://127.0.0.1:9200/_tasks?nodes=nodeId1,nodeId2&actions=cluster:*

请求:GET http://127.0.0.1:9200/_tasks/taskId1

请求:GET http://127.0.0.1:9200/_tasks?parent_task_id=parentTaskId1

任务应用接口还可以用来等待任务的完成,下面的调用将ID为oTUltX4IQMOUUVeiohTt8A:12345的任务等待10秒:

请求:GET http://127.0.0.1:9200/_tasks/oTUltX4IQMOUUVeiohTt8A:12345?wait_for_completion=true&timeout=10s

需要长时间等待的任务可以用下面的接口取消,取消操作可以取消一个或多个任务:

请求:POST http://127.0.0.1:9200/_tasks/taskId1/_cancel

请求:POST http://127.0.0.1:9200/_tasks/_cancel?node_id=nodeId1,nodeId2&actions=*reindex

5、待定集群任务

待定集群任务接口返回一个尚未执行的集群水平变化的列表,例如:创建索引、更新映射、分配分片或失败分片。

请求:http://127.0.0.1:9200/_cluster/pending_tasks

它通常返回空,因为系统正常情况下处理是很快的。

6、节点信息

集群节点信息接口用于搜索一个或多个集群节点信息。节点信息的接口参数为_nodes。

请求:GET http://127.0.0.1:9200/_nodes

和集群统计类型,也可以在最后面加上指标信息,对关注的指标单独查看,比如_nodes/os,只查看操作系统信息。

活跃线程查看

通过_nodes/hot_threads接口查询活跃线程,在_nodes后面加上节点名可以查询某个节点上的活跃线程。

请求:GET http://127.0.0.1:9200/_nodes/hot_threads

或者请求具体某个节点:GET http://127.0.0.1:9200/_nodes/{nodesIds}/hot_threads

7、节点统计

集群节点统计API可以对一个、多个或全部的集群节点进行统计。

请求:GET http://127.0.0.1:9200/_nodes/stats

请求:GET http://127.0.0.1:9200/_nodes/Artemis/stats

Artemis是节点名称,多个节点可以用逗号分开。这个命令把所有的统计信息都返回了,可以在最后面加上指标,只返回你关注指标的统计,多个指标可以用逗号分开。

请求:GET http://127.0.0.1:9200/_nodes/Artemis/stats/os,fs

上面的示例只返回节点中操作系统和文件系统的信息,统计指标解释如下:

1) indices:索引相关的数据统计。

2) fs:文件系统信息。

3) http:HTTP连接信息。

4) jvm:JVM虚拟机的统计。

5) os:操作系统统计。

6) process:进程统计。

7) thread_pool:线程池的统计。

8) transport:网络数据统计。

9) breaker:数据处理的统计。

10) script:脚本相关的信息。

相关文章

网友评论

      本文标题:Elasticsearch的集群节点监控

      本文链接:https://www.haomeiwen.com/subject/hqikoctx.html