在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:脚本相关的信息。
网友评论