美文网首页
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