【 系统升级完毕,在阿里云ECS下部署了docker,如果访问缓慢或出现异常我会及时修复。 】

ElasticSearch常用操作记录

Server 林涛 270℃ 0评论

ElasticSearch的一些常用操作,这里记录一下,需要说明一下需要有一定的ES理论基础和实际操作基础,如果没有请先mark。

查看相关信息
curl -XGET ‘http://192.168.0.1:9200/_cat/health?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/nodes?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/allocation?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/plugins?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/count?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/count/index?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/indices?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/indices/{index}?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/shards?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/shards/{index}?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/segments?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/segments/{index}?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/aliases?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/aliases/{alias}?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/thread_pool?v’
curl -XGET ‘http://192.168.0.1:9200/_cat/recovery?v’

查看集群健康状态

curl -XGET ‘http://192.168.0.1:9200/_cluster/health?pretty=true’

查看集群状态

curl -XGET ‘http://192.168.0.1:9200/_cluster/stats?pretty=true’

查看集群配置

curl -XGET ‘http://192.168.0.1:9200/_cluster/settings?pretty=true’

修改集群配置

persistent:持久配置

transient:临时配置

线程池相关配置

generic:通用操作,如node discovery。它的类型默认为cached。
index:此线程池用于索引和删除操作。它的类型默认为fixed,size默认为可用处理器的数量,队列的size默认为200。
search:此线程池用于搜索和计数请求。它的类型默认为fixed,size默认为(可用处理器的数量* 3) / 2) + 1,队列的size默认为1000。
suggest:此线程池用于建议器请求。它的类型默认为fixed,size默认为可用处理器的数量,队列的size默认为1000。
get:此线程池用于实时的GET请求。它的类型默认为fixed,size默认为可用处理器的数量,队列的size默认为1000。
bulk:此线程池用于批量操作。它的类型默认为fixed,size默认为可用处理器的数量,队列的size默认为50。
percolate:此线程池用于预匹配器操作。它的类型默认为fixed,size默认为可用处理器的数量,队列的size默认为1000。

curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“persistent”:{“threadpool.bulk.type”: “fixed”, “threadpool.bulk.size” : 12, “threadpool.bulk.queue_size” : 1200}}’

curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient”:{“threadpool.bulk.type”: “fixed”, “threadpool.bulk.size” : 12, “threadpool.bulk.queue_size” : 1200}}’

磁盘相关常用配置

“cluster.routing.allocation.disk.threshold_enabled” : false

cluster.routing.allocation.disk.watermark.low:控制磁盘使用的低水位。默认为85%,意味着如果节点磁盘使用超过85%,则ES不允许在分配新的分片。

cluster.routing.allocation.disk.watermark.high:控制磁盘使用的高水位。默认为90%,意味着如果磁盘空间使用高于90%时,ES将尝试分配分片到其他节点。

上述两个配置可以使用API动态更新,ES每隔30s获取一次磁盘的使用信息,该值可以通过cluster.info.update.interval来设置。

curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d’ {“persistent” : {“cluster.routing.allocation.disk.watermark.low” : “90%”, “cluster.routing.allocation.disk.watermark.high” : “95%”} }’

分片分配相关配置

  • 设置根据集群中机器的状态来重新分配分片,可以设置为可以设置为always, indices_primaries_active和indices_all_active,默认是设置成indices_all_active来减少集群初始启动时机器之间的交互。
    curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient” : {“cluster.routing.allocation.allow_rebalance” : “indices_all_active”}}’
  • 设置在集群中最大允许同时进行分片分布的个数,默认为2,也就是说整个集群最多有两个分片在进行重新分布。
    curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient” : {“cluster.routing.allocation.cluster_concurrent_rebalance” : “2”}}’
  • 设置在节点中最大允许同时进行分片分布的个数,默认为2
    curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient” : {“cluster.routing.allocation.node_concurrent_recoveries” : “2”}}’
  •  指定哪些分片可以参与重新分配。选项有:all(default), primaries(主分片), new_primaries(新增加的主分片), none(禁止自动分配)。
    curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient” : {“cluster.routing.allocation.enable” : “none”}}’
  • 控制延迟多长时间后才开始分配unassigned的分片
    curl -XPUT ‘http://192.168.0.1:9200/_cluster/settings’ -d ‘{“transient”:{“index.unassigned.node_left.delayed_timeout”: “5m”}}’
扩容的时候,可以先行设置cluster.routing.allocation.enable=primaries,指只允许移动主shard。当发现shard数已经迁移了一半的时候,改回配置cluster.routing.allocation.enable=all,后面的迁移的是副本shard。这样扩容之后,shard和主shard的分布还是基本均匀的。

重新分配分片

curl -XPOST ‘http://192.168.0.1:9200/_cluster/reroute’ -d ‘{
“commands” : [{“move” : {
“index” : “syslog-v1”, “shard” : 1,
“from_node” : “192.168.0.1”, “to_node” : “192.168.0.2”
}}]}’

curl -XPOST ‘192.168.0.1:9200/_cluster/reroute’ -d ‘{
“commands” : [ {“allocate” : {
“index” : “syslog-v1”, “shard” : 1, “node” : “node-2”, “allow_primary” : true
}}]}’

Index索引相关配置

  • 修改副本数量配置
    curl -XPUT ‘http://192.168.0.1:9200/syslog-v1/_settings’ -d ‘{“index”:{“number_of_replicas”:”1″}}’
  • 修改数据同步刷新间隔配置
    curl -XPUT ‘http://192.168.0.1:9200/syslog-v1/_settings’ -d ‘{“index”:{“refresh_interval”:”60s”}}’
  • 修改索引的缓冲区大小,其默认值为10%,这意味着分配给一个节点的总存储器的10%将被用作索引的缓冲区大小。如果百分比被使用时,也能够设定min_index_buffer_size和max_index_buffer_size
    curl -XPUT ‘http://192.168.0.1:9200/syslog-v1/settings’ -d’ {“index” : {“indices.memory.index_buffer_size” : “30%”} }’

修改translog相关配置

curl -XPUT ‘http://192.168.0.1:9200/syslog-v1/settings’ -d’ {“index” : {“index.translog.flush_threshold_ops” : “50000”,”index.translog.flush_threshold_size”:”1gb”} }’

Elastic5 : index.translog.flush_threshold_size

curl -XPOST ‘192.168.0.1:9200/syslog-v1/_close’
curl -XPUT ‘http://192.168.0.1:9200/syslog-v1/_settings’ -d ‘{“index”:{
“refresh_interval”:”-1″,
“indices.memory.index_buffer_size” : “30%”,
“index.translog.flush_threshold_ops”:”50000″,
“index.translog.flush_threshold_size”:”1gb”
}}’
curl -XPOST ‘192.168.0.1:9200/syslog-v1/_open’

别名相关配置

curl -XPUT “http://192.168.0.1:9200/syslog-v1/_alias/syslog”

curl -XPOST “http://192.168.0.1:9200/_aliases” -d ‘  {
“actions”: [
{“remove”: {“index”: “syslog-v2”,  “alias”: “syslog”}},
{“add”: {“index”: “syslog-v1”,  “alias”: “syslog”}}
]}’

Index索引优化相关配置

  • 清除已删除的文件
    curl -XPOST ‘http://192.168.0.1:9200/syslog-v1/_optimize?only_expunge_deletes=true&wait_for_completion=true’
  • 删除了的文档数在一个segment里占的百分比,默认是10,大于这个值时,在执行expungeDeletes 操作时将会merge这些segments.
    index.merge.policy.expunge_deletes_allowed
  • 显示调用optimize 操作或者 expungeDeletes时可以操作多少个segments,默认是30.
    index.merge.policy.max_merge_at_once_explicit
  • 修改segment最大数配置
    curl -XPOST ‘http://192.168.0.1:9200/syslog-v1/_optimize?max_num_segments=1’
  • 查看一个索引segment的memory占用情况
    curl -XGET “http://192.168.0.1:9200/_cat/segments/syslog-v1?v&h=shard,segment,size,size.memory”
  • 查看Node的memory占用情况
    curl -XGET “http://192.168.0.1:9200/_cat/nodes?v&h=name,port,sm”
  • 索引分词相关记录
    curl -XGET ‘http://192.168.0.1:9200/syslog-v1/_analyze?analyzer=ik&pretty=true’ -d ‘{“text”:”太极宗师张三丰”}’

curl -XGET ‘http://192.168.0.1:9200/syslog-v1/_analyze?analyzer=ik_smart&pretty=true’ -d ‘{“text”:”太极宗师张三丰”}’

curl -XGET ‘http://192.168.0.1:9200/syslog-v1/_analyze?analyzer=ik_max_word&pretty=true’ -d ‘{“text”:”太极宗师张三丰”}’

http://192.168.0.1:9200/syslog-v1/_analyze?analyzer=ik&text=太极宗师张三丰&pretty=true

Mapping相关配置

新建mapping
curl -XPOST ‘http://192.168.0.1:9200/syslog-v1/syslog/_mapping/’ -d ‘{
“dynamic”: “strict”,
“properties”: {
“username”: {
“analyzer”: “ik_max_word”,
“term_vector”: “with_positions_offsets”,
“type”: “string”
}
}
}’

curl -XPOST ‘http://192.168.0.1:9200/syslog-v1/syslog/_mapping’ –data-binary @syslog.mapping

读取mapping
curl -XGET ‘http://192.168.0.1:9200/syslog-v1/_mappings?pretty=true’

 

 

来源:CSDN
原文:https://blog.csdn.net/fighting_one_piece/article/details/79298167

如需转载请注明: 转载自26点的博客

本文链接地址: ElasticSearch常用操作记录

转载请注明:26点的博客 » ElasticSearch常用操作记录

喜欢 (0)
发表我的评论
取消评论

表情