前言

Es升级是真快啊,几天一个版本更新,越来越好用了,8.9.2之后增加了Synthetics功能,可以直接在页面上建监测了,真香,升级起

本文只支持8.x升到8.x, 如果你是7.x,去看文档:Upgrade Elasticsearch

升级Elasticsearch

参考文档:Upgrade Elasticsearch

步骤:先升级node节点,再升级master节点

1. 停止分片分配

由于在关闭数据节点时,分配进程会等待一分钟时间,然后开始将该节点上的分片复制到群集中的其他节点,这可能会涉及大量 I/O。

但是我们的节点很快就会重新启动(升级很快),因此这种 I/O 是不必要的。因此可以在关闭数据节点前禁用复制的分配,从而避免I/O:

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

2. 停止不必要的索引并执行刷新(可选)

POST /_flush

3. 暂时停止与活动机器学习作业和数据馈送相关联的任务(可选)

使用设置升级模式API暂时停止与你的机器学习作业和数据传输相关的任务,并防止打开新作业:

POST _ml/set_upgrade_mode?enabled=true

如果没开就不用设置

4. 停止节点

如果你是用systemd命令维护es就用这个指令,如果不是,请去看官方文档

sudo systemctl stop elasticsearch.service

5. 安装新版本

用deb包或者rpm包装的可以直接安装

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.2-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.2-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.9.2-amd64.deb.sha512 
sudo dpkg -i elasticsearch-8.9.2-amd64.deb

目前我安装的最新是8.9.2

重载一下配置文件

systemctl daemon-reload

6. 启动

systemctl start elasticsearch.service

查看节点情况

GET _cat/nodes

7. 重新启用分片分配

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

8. 等待节点恢复

GET _cat/health?v=true

等待状态列切换为绿色。
节点变为绿色后,所有主碎片和副本碎片都已分配。

如果实在等不到就算了,我升级的时候等了半天,还是yellow,当然如果是red肯定不行

9. 重复以上步骤

到这里node节点已经升级好了,重复以上步骤继续升级其他node,最后升级master即可

注意:如果你通过一些非正常手段开了白金版,升级后会告诉你许可证错误,参考一分钟开启elastic白金版再来一遍就好了

升级Kibana

kibana升级比较简单,停止并重新安装即可,如果有多台kibana,要全部停掉

参考文档:Upgrade Kibana

systemctl stop kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.9.2-amd64.deb
shasum -a 512 kibana-8.9.2-amd64.deb 
sudo dpkg -i kibana-8.9.2-amd64.deb
systemctl start kibana