[toc]
# 你一直都用错了:Elasticsearch 安全完整的重启步骤指南 本文详细介绍了Elasticsearch集群的安全重启步骤,涵盖使用命令行curl和Kibana两种操作方式。从关闭集群自动均衡和写入权限开始,到通过SSH重启服务,最后恢复集群的均衡和写入功能,确保重启过程中数据的完整性和集群的稳定性。这些步骤对于维护Elasticsearch集群的高效运行至关重要。
命令行curl方式
关闭集群自动均衡和禁止集群写入 重启ES集群 打开集群自动均衡和开启集群写入 Kibana执行
关闭集群自动均衡和禁止集群写入 重启ES集群 打开集群自动均衡和开启集群写入 # 命令行curl方式 # 1. 关闭集群自动均衡和禁止集群写入 首先,需要关闭集群的自动均衡功能,并禁止写入,以防止重启过程中数据不一致。
# 关闭集群自动均衡
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '
{
"persistent": {
"cluster.routing.rebalance.enable": "none"
},
"transient": {
"cluster.routing.rebalance.enable": "none"
}
}'
# 检查集群自动均衡是否关闭
curl -XGET "http://集群任意IP:9200/_cluster/settings?pretty"
# 禁止集群写入
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '
{
"persistent": {
"cluster.blocks.read_only": true
},
"transient": {
"cluster.blocks.read_only": true
}
}'
# 检查集群写入是否已经关闭
curl -XGET "http://集群任意IP:9200/_cluster/settings?pretty"
123456789101112131415161718192021222324252627# 2. 重启ES集群 接下来,通过SSH命令重启Elasticsearch服务。
# 停止ES服务
ssh ip -C 'ps -ef|grep org.elasticsearch.bootstrap.Elasticsearch|grep -v grep|awk '\''{print $2}'\''|xargs kill -9'
# 启动ES服务
ssh ip -C 'su - es -c "cd /home/es/software/elasticsearch/bin; sh elasticsearch -d"'
12345# 3. 打开集群自动均衡和开启集群写入 在重启后,恢复集群的自动均衡功能和写入权限。
# 打开集群写入
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '{"persistent": {"cluster.blocks.read_only": false}}'
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '{"transient": {"cluster.blocks.read_only": false}}'
# 检查集群写入是否已经打开
curl -XGET "http://集群任意IP:9200/_cluster/settings?pretty"
# 打开集群自动均衡
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '{"persistent": {"cluster.routing.rebalance.enable": "all"}}'
curl -XPUT "http://集群任意IP:9200/_cluster/settings?pretty" -H 'Content-Type:application/json' -d '{"transient": {"cluster.routing.rebalance.enable": "all"}}'
# 检查集群自动均衡是否打开
curl -XGET "http://集群任意IP:9200/_cluster/settings?pretty"
12345678910111213# Kibana执行 # 1. 关闭集群自动均衡和禁止集群写入 使用Kibana的Dev Tools执行以下命令:
# 关闭集群自动均衡
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.rebalance.enable": "none"
},
"transient": {
"cluster.routing.rebalance.enable": "none"
}
}
# 检查集群自动均衡是否关闭
GET /_cluster/settings?pretty
# 禁止集群写入
PUT /_cluster/settings
{
"persistent": {
"cluster.blocks.read_only": true
},
"transient": {
"cluster.blocks.read_only": true
}
}
# 检查集群写入是否已经关闭
GET /_cluster/settings?pretty
123456789101112131415161718192021222324252627# 2. 重启ES集群 与命令行curl方式相同,使用SSH命令重启Elasticsearch服务。
# 3. 打开集群自动均衡和开启集群写入 在Kibana的Dev Tools中执行以下命令:
# 打开集群写入
PUT /_cluster/settings
{
"persistent": {
"cluster.blocks.read_only": false
}
}
PUT /_cluster/settings
{
"transient": {
"cluster.blocks.read_only": false
}
}
# 检查集群写入是否已经打开
GET /_cat/shards?v&pretty&s=ip:desc
# 打开集群自动均衡
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.rebalance.enable": "all"
}
}
PUT /_cluster/settings
{
"transient": {
"cluster.routing.rebalance.enable": "all"
}
}
# 检查集群自动均衡是否打开
GET /_cluster/settings?pretty
123456789101112131415161718192021222324252627282930313233在完成这些步骤后,您的Elasticsearch集群应该已经安全地重启,并且所有功能都已经恢复。
注意:在进行这些操作时,请确保您已经备份了所有重要数据,以防止不可预见的数据丢失。此外,操作前应当通知所有相关用户,因为重启过程可能会导致短暂的集群不可用。