Elasticsearch7版本升级步骤

一、项目背景

由于现有版本elasticsearch7.17.6版本存在retful漏洞,需要升级到7.17.14版本以上。这次打算直接升级到7.17.28版本。

1.版本升级路线确认

链接信息:Upgrade Elasticsearch | Elasticsearch Guide [7.17] | Elastic

2.准备升级

在开始升级之前,请务必仔细准备。一旦你拥有 started 要将集群升级到版本 7.17.28,您必须完成 升级。一旦集群包含版本 7.17.28 的节点,它就可以使 对其内部状态的更改,无法还原。如果您无法完成 升级后,您应该丢弃部分升级的集群,部署 空集群,并从 快照。

在开始将集群升级到版本 7.17.28 之前,您应该执行 以后。

  1. 检查弃用日志,看看你是否正在使用任何 已弃用的功能,并相应地更新您的代码。
  2. 查看重大更改并进行任何必要的更改 对版本 7.17.28 的代码和配置进行更改。
  3. 如果您使用任何插件,请确保每个插件都有一个版本 与 Elasticsearch 版本 7.17.28 兼容。
  4. 在升级生产环境之前,在隔离环境中测试升级 簇。
  5. 通过拍摄快照来备份您的数据!

二、升级步骤

1.确认目前elasticsearch集群的节点情况,优先升级数据节点,最后升级主节点。

GET _cat/nodes

2.关闭集群重分配

curl -u elastic:xxxx -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}
'

在某一台数据节点执行此操作,单个节点不存在副本的分配,但是多个节点的集群环境,当一个节点关闭后,相关的分片会重新分配,并产生大量的磁盘IO。

3.关闭单个节点

kill -9 $(cat pid) 或 

systemctl stop elastic

具体看环境吧

4.升级您关闭的节点

解压elasticsearch-7.17.28.tar.gz

tar -xf elasticsearch-7.17.28.tar.gz -C /path/

拷贝配置文件。

cp -r ./elasticsearch-7.17.6/config/  ./elasticsearch-7.17.28/

拷贝7.17.6版本下的path.data路径内容到7.17.28版本(具体看数据量,可以拷贝时间过长)

cp -r ./elasticsearch-7.17.6/data ./elasticsearch-7.17.28/

拷贝完,更新一下用户和用户组权限

chown -R elastic:elastic elasticsearch-7.17.28

5.升级任何插件

在线升级

#原集群只安装了中文分词 IK 插件,所以要先卸载该插件
./bin/elasticsearch-plugin remove analysis-ik 
#在新目录执行此操作7.17.28版本
./bin/elasticsearch-plugin install analysis-ik l

离线升级

下载和版本一样的插件

解压安装新版本插件,例如ik分词器

unzip elasticsearch-analysis-ik-7.17.28.zip -d /path/elasticsearch/plugins/ik

6.启动升级后的节点

#启动es,具体参数看你的环境
/path/elasticsearch/bin/elasticsearch -d -e xxx 

#启动新升级的节点,并通过检查 日志文件或通过提交请求:_cat/nodes
curl -X GET "localhost:9200/_cat/nodes?pretty"

7.重新启用分片分配

        对于数据节点,节点加入集群后,删除设置以启用分片分配并启动 使用节点:cluster.routing.allocation.enable.

# kibana
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}
# shell
curl -u elastic:passwd -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}
'

8.等待节点恢复

在升级下一个节点之前,请等待集群完成分片分配。 您可以通过提交 请求来检查进度:

curl -u elastic:passwd  -X GET "localhost:9200/_cat/health?v=true&pretty"

9.重复操作,滚动升级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值