curl命令操作ElasticSearch

curl命令操作ElasticSearch

    • 访问ES默认端口
    • 查看节点版本信息
    • ES cat系列 _cat命令获取集群状态信息
        • 查看所有节点信息
        • 查看集群健康情况
        • 获取所有索引信息
    • ES cluster系列,_cluster获取集群信息
        • 查询集群状态
        • 显示集群系统信息,包括CPU、JVM等
        • 显示集群详细信息,包括节点、分片等
        • 获取集群任务
    • ES nodes系列,_nodes查询节点状态
    • 索引操作
        • 获取索引
        • 索引数据
        • 删除索引
        • 获取mapping
        • 设置mapping
      • 获取单个索引信息
      • 获取所有type类型信息
      • 获取指定索引的type类型信息
    • 增删改查
        • 增:添加一个文档,同时索引、类型、文档id也自动生成
        • 改:修改原有数据,注意文档的版本
        • 查:根据index,type,id查询文档信息
        • 查:根据index,type,其他字段查询文档信息
        • 删:删除文档、删除类型(所有数据)和删除索引

访问ES默认端口

Http协议默认端口为9200,用于节点和外部通讯;
Tcp协议默认端口为9300,用于节点与节点之间、节点与TCPClient之间的通讯

查看节点版本信息

[root@CCC ~]# curl -XGET esXXX.com:9200
	{
     
	  "name" : "node-2",
	  "cluster_name" : "CCC-ElasticSearch",
	  "cluster_uuid" : "mpy54uqwQ0-ZY4x6t-A_zA",
	  "version" : {
     
	    "number" : "6.7.0",
	    "build_flavor" : "oss",
	    "build_type" : "tar",
	    "build_hash" : "8453f77",
	    "build_date" : "2019-03-21T15:32:29.844721Z",
	    "build_snapshot" : false,
	    "lucene_version" : "7.7.0",
	    "minimum_wire_compatibility_version" : "5.6.0",
	    "minimum_index_compatibility_version" : "5.0.0"
	  },
	  "tagline" : "You Know, for Search"
	}

ES cat系列 _cat命令获取集群状态信息

_cat命令提供一系列查询ES集群状态的接口,通过执行curl -XGET host:9200/_cat命令获取到所有cat的操作命令

[root@CCC ~]# curl -XGET es-XXX.com:9200/_cat
	=^.^=
	/_cat/allocation               //查看节点分配情况
	/_cat/shards                     //查看分片情况
	/_cat/shards/{
     index}
	/_cat/master                    //查看主节点
	/_cat/nodes                     //查看所有节点
	/_cat/tasks
	/_cat/indices                   //查看所有索引状态
	/_cat/indices/{
     index}
	/_cat/segments                  //查看索引的分片信息
	/_cat/segments/{
     index}
	/_cat/count                     //查看文档个数
	/_cat/count/{
     index}
	/_cat/recovery
	/_cat/recovery/{
     index}
	/_cat/health                    //查看集群健康情况
	/_cat/pending_tasks
	/_cat/aliases
	/_cat/aliases/{
     alias}
	/_cat/thread_pool
	/_cat/thread_pool/{
     thread_pools}
	/_cat/plugins
	/_cat/fielddata
	/_cat/fielddata/{
     fields}
	/_cat/nodeattrs
	/_cat/repositories
	/_cat/snapshots/{
     repository}
	/_cat/templates
  1. 查看所有节点信息

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cat/nodes?v
    	ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    	192.168.0.113           20          19   0    0.56    0.31     0.25 mdi       -      node-2
    	192.168.0.112           22          85   4    4.64    5.76     5.42 mdi       *      node-0
    	192.168.0.111           18          77   3    2.14    3.01     3.35 mdi       -      node-1
    
  2. 查看集群健康情况

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cat/health?v
    epoch      timestamp cluster           status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
    1596699974 07:46:14  CCC-ElasticSearch green           3         3     24  12    0    0        0             0                  -                100.0%
    
  3. 获取所有索引信息

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cat/indices?v
    		health status index     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    		green  open   hr        jEnki_w3SIKqQx9o0A8oEg   5   1          3            0     75.5kb         37.7kb
    		green  open   .kibana_1 5629XHb8QBWOTYcYfCqBDg   1   1          1            0      7.4kb          3.7kb
    		green  open   h1        bFG4mFpHSSOqUInbW77N3A   5   1          1            0     21.7kb         10.8kb
    		green  open   .kibana   MJHB1LdySxiIzZbJjagYKA   1   1          1            0      7.4kb          3.7kb
    

ES cluster系列,_cluster获取集群信息

  1. 查询集群状态

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cluster/health?pretty=true
    		{
           
    		  "cluster_name" : "CCC-ElasticSearch",
    		  "status" : "green",
    		  "timed_out" : false,
    		  "number_of_nodes" : 3,
    		  "number_of_data_nodes" : 3,
    		  "active_primary_shards" : 55,
    		  "active_shards" : 110,
    		  "relocating_shards" : 0,
    		  "initializing_shards" : 0,
    		  "unassigned_shards" : 0,
    		  "delayed_unassigned_shards" : 0,
    		  "number_of_pending_tasks" : 0,
    		  "number_of_in_flight_fetch" : 0,
    		  "task_max_waiting_in_queue_millis" : 0,
    		  "active_shards_percent_as_number" : 100.0
    		}
    
    ##pretty=true表示格式化输出
    ##level=indices 表示显示索引状态
    ##level=shards 表示显示分片信息
  2. 显示集群系统信息,包括CPU、JVM等

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cluster/stats?pretty=true
    
  3. 显示集群详细信息,包括节点、分片等

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cluster/state?pretty=true
    
  4. 获取集群任务

    [root@CCC ~]# curl -XGET es-XXX.com:9200/_cluster/pending_tasks?pretty=true
    	{
           
    	  "tasks" : [ ]
    	}
    

ES nodes系列,_nodes查询节点状态

[root@CCC ~]# curl -XGET es-XXX.com:9200/_nodes/stats?pretty=true

[root@CCC ~]# curl -XGET es-XXX.com:9200/_nodes/process
{
     "_nodes":{
     "total":3,"successful":3,"failed":0},"cluster_name":"CCC-ElasticSearch","nodes":{
     "AQ4qydaKT9aJbRWw5zMNgw":{
     "name":"node-0","transport_address":"192.168.0.112:9300","host":"192.168.0.112","ip":"192.168.0.112","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":51825,"mlockall":true}},"jvcZKU5LRlWLRP-gygIu2Q":{
     "name":"node-1","transport_address":"192.168.0.111:9300","host":"192.168.0.111","ip":"192.168.0.111","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":94888,"mlockall":true}},"mbUErjiTTWaHdqLLxdQCZw":{
     "name":"node-2","transport_address":"192.168.0.113:9300","host":"192.168.0.113","ip":"192.168.0.113","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":36069,"mlockall":true}}}}

[root@CCC ~]# curl -XGET es-XXX.com:9200/_nodes/_all/process
{
     "_nodes":{
     "total":3,"successful":3,"failed":0},"cluster_name":"CCC-ElasticSearch","nodes":{
     "AQ4qydaKT9aJbRWw5zMNgw":{
     "name":"node-0","transport_address":"192.168.0.112:9300","host":"192.168.0.112","ip":"192.168.0.112","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":51825,"mlockall":true}},"jvcZKU5LRlWLRP-gygIu2Q":{
     "name":"node-1","transport_address":"192.168.0.111:9300","host":"192.168.0.111","ip":"192.168.0.111","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":94888,"mlockall":true}},"mbUErjiTTWaHdqLLxdQCZw":{
     "name":"node-2","transport_address":"192.168.0.113:9300","host":"192.168.0.113","ip":"192.168.0.113","version":"6.7.0","build_flavor":"oss","build_type":"tar","build_hash":"8453f77","roles":["master","data","ingest"],"process":{
     "refresh_interval_in_millis":1000,"id":36069,"mlockall":true}}}}
	
[root@CCC ~]# curl -XGET es-XXX.com:9200/_nodes/hot_threads
	::: {
     node-2}{
     mbUErjiTTWaHdqLLxdQCZw}{
     9XFJ6bCvRiKKzICOULtO2g}{
     192.168.0.113}{
     192.168.0.113:9300}
		Hot threads at 2020-08-17T09:26:36.180, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
		
	::: {
     node-0}{
     AQ4qydaKT9aJbRWw5zMNgw}{
     HVjVri7mSQqIvM5telpMDg}{
     192.168.0.112}{
     192.168.0.112:9300}
		Hot threads at 2020-08-17T09:26:36.180, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
		
	::: {
     node-1}{
     jvcZKU5LRlWLRP-gygIu2Q}{
     e_ybh9e2RXirIvzJap31SA}{
     192.168.0.111}{
     192.168.0.111:9300}
		Hot threads at 2020-08-17T09:26:36.180, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:

索引操作

  1. 获取索引

    curl -XGET es-XXX.com:9200/{
           index}/{
           type}/{
           id}
    
  2. 索引数据

    curl -XPOST  es-XXX.com:9200/{
           index}/{
           type}/{
           id} -d'{
           “a”:”avalue”,”b”:”bvalue”}
  3. 删除索引

    curl -XDELETE es-XXX.com:9200/{
           index}/{
           type}/{
           id}
    
  4. 获取mapping

    curl -XGET es-XXX.com:9200/{
           index}/{
           type}/_mapping
    
  5. 设置mapping

    curl -XPUT es-XXX.com:9200/{
           index}/{
           type}/_mapping  -H "Content-Type:application/json" -d '{"{type}":{"properties":{"date":{"type":"long"},"name":{"type":"string","index":"not_analyzed"},"status":{"type":"integer"},"type":{"type":"integer"}}}}'
    

获取单个索引信息

[root@CCC ~]# curl -XGET es-XXX.com:9200/h1?pretty
	{
     
	  "h1" : {
     
	    "aliases" : {
      },
	    "mappings" : {
     
	      "employees" : {
     
	        "properties" : {
     
	          "address" : {
     
	            "type" : "text",
	            "fields" : {
     
	              "keyword" : {
     
	                "type" : "keyword",
	                "ignore_above" : 256
	              }
	            }
	          },
	          "chineseId" : {
     
	            "type" : "text",
	            "fields" : {
     
	              "keyword" : {
     
	                "type" : "keyword",
	                "ignore_above" : 256
	              }
	            }
	          },…

获取所有type类型信息

[root@CCC ~]# curl -XGET es-XXX.com:9200/_mapping?pretty=true
{
  "hr" : {
    "mappings" : {
      "employees" : {
        "properties" : {
          "address" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              },。。。

获取指定索引的type类型信息

[root@CCC ~]# curl -XGET es-XXX.com:9200/hr/_mapping?pretty=true 
	{
     
	  "hr" : {
     
	    "mappings" : {
     
	      "employees" : {
     
	        "properties" : {
     
	          "address" : {
     
	            "type" : "text",
	            "fields" : {
     
	              "keyword" : {
     
	                "type" : "keyword",
	                "ignore_above" : 256
	              }
	            }
	          },。。。

增删改查

  1. 增:添加一个文档,同时索引、类型、文档id也自动生成

    [root@CCC ~]# curl -XPUT es-XXX.com:9200/hr/employees/11111 -H "Content-Type:application/json" -d '{"name":"ccc","age":18}'
    	{
           "_index":"hr","_type":"employees","_id":"11111","_version":1,"result":"created","_shards":{
           "total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
    
  2. 改:修改原有数据,注意文档的版本

    [root@CCC ~]# curl -XPOST es-XXX.com:9200/hr/employees/11111?pretty -H "Content-Type:application/json" -d '{"name":"bbbb","age":50}'
    	{
           
    	  "_index" : "hr",
    	  "_type" : "employees",
    	  "_id" : "11111",
    	  "_version" : 9,
    	  "result" : "updated",
    	  "_shards" : {
           
    	    "total" : 2,
    	    "successful" : 2,
    	    "failed" : 0
    	  },
    	  "_seq_no" : 8,
    	  "_primary_term" : 1
    	}
    
  3. 查:根据index,type,id查询文档信息

    [root@CCC ~]# curl -XGET es-XXX.com:9200/hr/employees/11111?pretty
    {
           
      "_index" : "hr",
      "_type" : "employees",
      "_id" : "11111",
      "_version" : 7,
      "_seq_no" : 6,
      "_primary_term" : 1,
      "found" : true,
      "_source" : {
           
         "name" : "ccc",
         "age" : 18  }
    }
    
  4. 查:根据index,type,其他字段查询文档信息

    [root@CCC ~]# curl -XGET es-XXX.com:9200/hr/employees/_search?q=name:ccc
    	{
           "took":2,"timed_out":false,"_shards":{
           "total":5,"successful":5,"skipped":0,"failed":0},"hits":{
           "total":0,"max_score":null,"hits":[]}}
    	[root@CCC ~]# curl -XGET es-XXX.com:9200/hr/employees/_search?pretty=true&q=name:b
    	[1] 19200
    	[root@CCC ~]# {
           
    	  "took" : 1,
    	  "timed_out" : false,
    	  "_shards" : {
           
    	    "total" : 5,
    	    "successful" : 5,
    	    "skipped" : 0,
    	    "failed" : 0
    	  },
    	  "hits" : {
           
    	    "total" : 1,
    	    "max_score" : 1.0,
    	    "hits" : [
    	      {
           
    	        "_index" : "hr",
    	        "_type" : "employees",
    	        "_id" : "11111",
    	        "_score" : 1.0,
    	        "_source" : {
           
    	          "name" : "b",
    	          "age" : 30
    	        }
    	      }
    	    ]
    	  }
    	}
    	
    	[1]+  Done 
    
  5. 删:删除文档、删除类型(所有数据)和删除索引

    ##删除文档

    [root@CCC ~]# curl -XDELETE es-XXX.com:9200/hr/employees/11111?pretty
    	{
           
    	  "_index" : "hr",
    	  "_type" : "employees",
    	  "_id" : "11111",
    	  "_version" : 10,
    	  "result" : "deleted",
    	  "_shards" : {
           
    	    "total" : 2,
    	    "successful" : 2,
    	    "failed" : 0
    	  },
    	  "_seq_no" : 9,
    	  "_primary_term" : 1
    	}
    [root@CCC ~]# curl -XGET es-XXX.com:9200/hr/employees/11111
    	{
           "_index":"hr","_type":"employees","_id":"11111","found":false}
    

    ##删除类型–目前不支持删除一个type了。

    [root@CCC ~]# curl -XDELETE es-XXX.com:9200/hr/employees
    		{
           "error":"Incorrect HTTP method for uri [/hr/employees] and method [DELETE], allowed: [POST]","status":405}
    

    ##删除索引

    [root@CCC ~]# curl -XDELETE -u elastic:changeme es-nlb-es-ny7dpk33ms.jvessel-open-sh.jdcloud.com:9200/hr?pretty
    {
           
      "acknowledged" : true
    }
    

你可能感兴趣的:(数据库操作,curl,elasticsearch)