Elasticsearch 2.2.0 精简(cat)API

在Elasticsearch提供了一套精简API来查看系统的状态,官方的文档叫cat API。主要的目的是由于Elasticsearch默认提供的接口返回都是JSON格式的,这种格式不利于人类的阅读,所以搞出来一套cat API来简化。

每个命令都是以/_cat开头,可以接收v参数得到详细输出;可以通过help参数得到返回的每列的帮助信息。可以通h=参数名返回部分内容,多个参数可以用逗号分开,甚至可以支持通配符。例如:

请求:GET http://127.0.0.1:9200/_cat/master?v

返回:

id                     host      ip        node

jevOQqVQT_a_pAGqKA0p7w 127.0.0.1 127.0.0.1 Artemis

查询帮助实例:

请求:GET http://127.0.0.1:9200/_cat/master?help

id   |   | node id

host | h | host name

ip   |   | ip address

node | n | node name

指标 说明

aliases 别名显示有关的别名的一些信息,包括过滤和路由等信息,可以在最后面加上具体别名的名称单独查询某个具体的别名。

allocation 在分配给每个数据节点上提供多少分片快照和他们使用的磁盘空间有多大。

count 提供节点的文档总数,如果后面加上索引名称,可以的得到具体索引的文档数量。

fielddata 在集群中的每个数据节点上正在使用的堆内存的大小。

health 提供集群的健康情况。

indices 提供节点下的索引信息,可以得到索引的分片,文档,存储大小等信息。

master 显示master节点的概要信息,主要是id,ip和节点名称。

nodeattrs 显示自定义节点属性。

nodes 显示节点相关的信息。

pending tasks 集群任务接口,和集群接口类似,参见集群任务文档。

plugins 提供激情群中插件安装的信息。

recovery 正在进行和以前完成的索引分片的回收率。

repositories 显示在群集中注册的快照库。

thread pool 显示每个群集节点的线程池统计。

shards 索引分片的使用情况。分片有很多的指标,可以用help查看。

segments 每个索引分片中低水平段的信息

snapshots 显示仓库的快照信息。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

indices

indices有非常多的参数可以选择,具体用help查看。例如:

请求:GET http://127.0.0.1:9200/_cat/indices?pri&v&h=health,index,prirep,docs.count,mt

返回的结果:

health index     docs.count mt pri.mt

yellow customer           5  0      0

green  .scripts           2  0      0

green  secilog            2  0      0

yellow secisland          4  0      0

nodes

nodes有非常多的参数可以选择,具体用help查看。例如:

请求:GET http://127.0.0.1:9200/_cat/nodes?v&h=id,ip,port,v,m,jdk

返回的结果:

id   ip        port v     m jdk

qKTT 127.0.0.1 9300 2.2.0 * 1.7.0_79

回复命令recovery

在一个集群中,一个索引的分片可能随时会从一个节点迁移到另一个节点,比如在恢复快照的过程中,新节点启动的过程中等等。例如下面的示例表示没有任何分片的数据在传输:

请求:GET http://127.0.0.1:9200/_cat/recovery/secisland?v

返回的结果:

index     shard time type  stage source_host target_host repository snapshot files files_percent bytes bytes_percent total_files total_bytes translog translog_percent total_translog

secisland 0     115  store done  127.0.0.1   127.0.0.1   n/a        n/a      0     100.0%        0     100.0%        1           159         0        -1.0%            -1

secisland 1     15   store done  127.0.0.1   127.0.0.1   n/a        n/a      0     100.0%        0     100.0%        1           159         0        -1.0%            -1

secisland 2     55   store done  127.0.0.1   127.0.0.1   n/a        n/a      0     100.0%        0     100.0%        7           6784        0        -1.0%            -1

secisland 3     51   store done  127.0.0.1   127.0.0.1   n/a        n/a      0     100.0%        0     100.0%        4           3468        0        -1.0%            -1

secisland 4     182  store done  127.0.0.1   127.0.0.1   n/a        n/a      0     100.0%        0     100.0%        4           3468        0        -1.0%            -1

通过增加副本节点的数量可以让分片的数据进行传输。

例如:

index shard time type    stage source target files percent bytes     percent

wiki  0     1252 store done  hostA  hostA  4     100.0%  23638870 100.0%

wiki  0     1672 replica index hostA  hostB  4     75.0%   23638870 48.8%

wiki  1     1698 replica index hostA  hostB  4     75.0%   23348540 49.4%

wiki  1     4812 store done  hostA  hostA  33    100.0%  24501912 100.0%

wiki  2     1689 replica index hostA  hostB  4     75.0%   28681851 40.2%

wiki  2     5317 store done  hostA  hostA  36    100.0%  30267222 100.0%

线程池

线程池有非常多的参数可以选择,具体用help查看。例如:

请求:GET http://127.0.0.1:9200/_cat/thread_pool?v&h=id,host,suggest.active,suggest.rejected,suggest.completed

返回的结果:

id   host      suggest.active suggest.rejected suggest.completed

qKTT 127.0.0.1         0            0             0

赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。

时间: 2024-10-13 08:30:19

Elasticsearch 2.2.0 精简(cat)API的相关文章

ElasticSearch 5.0.1 java API操作

今天来说下使用ES 5.0.1的API来进行编码. 开始之前,简单说下5.0.1跟之前的几个变化.之前的ES自身是不支持delete-by-query的,也就是通过查询来删除,可以达到批量的效果,是因为刷新的原因,应该够近实时的特性相关.一直是以一个插件的形式存在,到5.0.1时,倒腾了半天,还是官方文档说,已经废掉了这个插件,放到ES Core中来了.这是一个变化,另外,初始化ES client的方式也变化了,这个要吐槽一下,从1.7到2.X,初始化方式改了一遍,从2.X到5.X又变了,让人有

使用Servlet3.0提供的API实现文件上传

在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileupload组件,在Servlet3.0中提供了对文件上传的原生支持,我们不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能了. 一.使用Servlet3.0提供的API实现文件上传 1.1.编写上传页面 1 <%@ page language="java" pageEncoding="UTF-8"

laravel Passport - 创建 REST API 用户认证以及Dingo/Api v2.0+Passport实现api认证

第一部分: 安装passport 使? Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服务提供者注册到配置?件  config/app.php  的providers  数组中:(5.6后不用加 ) Laravel\Passport\PassportServiceProvider::class utf8 的 varchar 类型字符串最长255,换成utf8mb4最长是191,然而框架

【拆分版】Docker-compose构建Elasticsearch 7.1.0集群

写在前边 搞了两三天了,一直有个问题困扰着我,ES集群中配置怎么能正确映射到主机上,这边经常报ClusterFormationFailureHelper master not discovered or elected yet.原因是容器中的ES节点没有正确的映射到主机上,而且容器内ip是易变的,我该怎么配置呢? 临下班了,终于想到个法子,固定容器ip--使用network_mode: host 看到主机模式的我眼前一亮,容器就相当于一个主机服务,你占哪个端口就是哪个,没有必要再去自己指定por

Elasticsearch学习笔记(一)cat API

一.Cat通用参数 Verbose GET /_cat/XXX/?v 开启详细输出 Help GET /_cat/XXX/?help 输出可用的列 Headers GET /_cat/XXX/?h=column1,column2 指定输出的列 Sort GET /_cat/XXX/?v&s=column1,column2:desc,column3 指定输出的列进行排序,默认按照升序排序 Format GET /_cat/XXX?format=json 指定响应返回的数据格式:text(默认),j

Elasticsearch 2.2.0 JAVA开发篇:搜索操作

普通查询 Elasticsearch java API同时提供了强大的搜索功能,不过这也是很正常的因为所有的http接口到后面都要转换成java代码才可以执行.索引名和type名称都可以是多个,用逗号分开. SearchRequestBuilder  sbuilder = client.prepareSearch("secilog") //index name .setTypes( "type") //type name .setSearchType(SearchT

ElasticSearch记录(0)详细梳理

转自:https://blog.csdn.net/makang110/article/details/80596017 题记: Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识.原理从初学者认知.学习的角度,从以下9个方面进行详细梳理.欢迎讨论…… 0. 带着问题上路——ES是如何产生的? (1)思考:大规模数据如何检索? 如:当系统数据量上了10亿.100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题: 1)用什么数据库好?(mysql.s

iOS 9.3 到 iOS 10.0 的开发API不同点

iOS 9.3 to iOS 10.0 API Differences Objective-C /usr/include Accelerate AudioToolbox AudioUnit AVFoundation AVKit CallKit (Added) CFNetwork CloudKit Contacts CoreBluetooth CoreData CoreFoundation CoreGraphics CoreImage CoreLocation CoreMedia CoreMoti

HBase1.0.1.1 API与原来有所不同

1 package com.felix.hbaseapi_test; 2 3 /* 这是旧版的 API操作 */ 16 public class hbaseapifelix { 17 18 public static final String TABLE_NAME = "testapi"; 19 public static final String COLUMNFAMILY_NAME = "cf"; 20 public static final String ROW