ElasticSearch 常用命令总结(更新中)

一、ElasticSearch 常用api地址

软件环境:以下都是对于 ElasticSearch-5之后版本

'查看集群状态'  :  http://server_ip:port/_cluster/stats

'集群健康状态'  :  http://server_ip:port/_cluster/health

'查看节点状态'  :  http://server_ip:port/_nodes/stats

                  http://server_ip:port/_nodes/ # 和上面的有出入,比上面主机ip全

'索引(indices)状态':  http://server_ip:port/_stats

'查看设置'http://server_ip:port/_all/_settings

'查看索引内容'http://server_ip:port/你的索引名/_search

'查看es集群副本分配节点'http://server_ip:port/_cat/shards?v

二、ElasticSearch基本管理命令

1、创建es索引:

curl -XPUT 'http://server_ip:port/filebeat-2018.07.25.19' -d '
{
    "settings": {
      "index": {
        "mapping": {
          "total_fields": {
            "limit": "10000"
          }
        },
        "refresh_interval": "5s",
        "number_of_shards": "5",
        "number_of_replicas": "1"
      }
    }
}'

2、删除es索引

curl -X DELETE 'http://server_ip:port/*索引名*'

# 注:新版本es5以后,get获取索引不支持*正则,delete操作支持
# curl -X GET 'http://server_ip:port/*索引名*' 

3、关闭es索引、打开es索引

curl -X POST 'http://server_ip:port/索引名/_close'  # 索引支持 “*” 匹配
curl -X POST 'http://server_ip:port/索引名/_open'  # 打开索引

4、节点离线时延迟分配配置

由于节点已经离开而成为未分配的副本分片的分配可以通过index.unassigned.node_left.delayed_timeout 动态设置被延迟,默认为1m

可以在实时索引(或所有索引)上更新此设置:

curl -XPUT 'http://server_ip:port/_all/_settings' -d '
{
  "settings":{
    "index.unassigned.node_left.delayed_timeout":"20m"
  }
}'

5、禁止自动分片同步

分配已被此超时设置延迟的分片数量可以使用群集健康APIhttp://server_ip:port/_cluster/health查看:

用于节点重启等时,不启用es同步,重启稳定后在开启同步,避免节点几分钟的重启导致所有所有重新分配同步一遍

  • 禁止自动同步:
curl -XPUT 'http://server_ip:port/_cluster/settings' -d '
{
    "transient" : {
          "cluster.routing.allocation.enable" : "none"
    }
}'
  • 开始同步
curl -XPUT 'http://server_ip:port/_cluster/settings' -d '
{
    "transient" : {
          "cluster.routing.allocation.enable" : "all"
    }
}'

在写入量和查询性能能够满足的前提下,为索引分配尽量少的分片。分片过多会带来诸多负面影响

冷热数据最好做分离。对于日志型应用来说,一般是每天建立一个新索引,当天的热索引在写入的同时也会有较多的查询。如果上面还存有比较长时间之前的冷数据,那么当用户做大跨度的历史数据查询的时候,过多的磁盘IO和CPU消耗很容易拖慢写入,造成数据的延迟。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页