暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

你一直都用错了!Elasticsearch 安全正确的重启步骤指南

编程与架构 2024-08-09
175

本文详细介绍了Elasticsearch集群的安全重启步骤,涵盖使用命令行curl和Kibana两种操作方式。从关闭集群自动均衡和写入权限开始,到通过SSH重启服务,最后恢复集群的均衡和写入功能,确保重启过程中数据的完整性和集群的稳定性。这些步骤对于维护Elasticsearch集群的高效运行至关重要。

  • • 命令行curl方式

    1. 1. 关闭集群自动均衡和禁止集群写入

    2. 2. 重启ES集群

    3. 3. 打开集群自动均衡和开启集群写入

  • • Kibana执行

    1. 1. 关闭集群自动均衡和禁止集群写入

    2. 2. 重启ES集群

    3. 3. 打开集群自动均衡和开启集群写入

命令行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"

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"'

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"

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

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

在完成这些步骤后,您的Elasticsearch集群应该已经安全地重启,并且所有功能都已经恢复。


注意:在进行这些操作时,请确保您已经备份了所有重要数据,以防止不可预见的数据丢失。此外,操作前应当通知所有相关用户,因为重启过程可能会导致短暂的集群不可用。




欢迎关注我的公众号“Hadoop学习之路”,原创技术文章第一时间推送。



文章转载自编程与架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论