es运维记录

关闭开启ES集群顺序:

* 第一步,禁止分片自动分布

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
    * 

第二步,执行同步刷新

POST _flush/synced
    * 
第三步,各节点逐个关闭

# 通过服务关闭# sudo systemctl stop elasticsearch.service# 发送TERM信号关闭进程kill $(cat pid.txt)如何启动ES集群
    * 
第一步,执行完操作后逐个启动节点,先master节点再其他节点

cd $ES_HOME/bin
./elasticsearch -d -p $ES_HOME/pid.txt
    * 
第二步,等待所有节点加入集群
查看集群状态是否为"yellow"或者"green"

GET _cat/health

GET _cat/nodes
    * 
第三步,启用分片自动分布("yellow"或者"green"后)

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": null
}
}
    * 
第四步,等待集群可用
通过集群的状态和恢复进程监控集群是否可用

索引UNASSIGNED修正:

第一看集群状态:
curl -XGET 'http://localhost:9200/_cluster/health'
第二,看所有的shards:
curl -XGET 'http://localhost:9200/_cat/shards'
查看elasticsearch所有UNASSIGNED状态的索引
curl -XGET 'http://192.168.10.70:9200/_cat/shards' |grep UNASSIGNED

修复子节点有Unassigned Shards

POST /_cluster/reroute?retry_failed=true
{
"commands" : [

{
"allocate_replica" : {
"index" : "crawlab12_result",
"shard" : 16,
"node" : "es01"
}
}
]
}
上一篇:docker es7.6 集群


下一篇:gRPC的Go语言实现