1. 程式人生 > >elasticsearch 6.2 版本升級至6.4 版本服務啟動報錯

elasticsearch 6.2 版本升級至6.4 版本服務啟動報錯

client 所有 share 步驟 secret jar 自動 pex nta

升級後發現es服務無法啟動,發現報錯如下:

升級原因:kibana 升級至6.4 無法正常啟動連接 6.2 版本es集群數據;

x-pack 插件錯誤:

[2018-09-19T17:12:54,555][ERROR][o.e.b.Bootstrap          ] Exception
java.lang.IllegalArgumentException: property [name] is missing in [/usr/share/elasticsearch/plugins/x-pack/plugin-descriptor.properties]

按要求添加文件,重啟服務發現問題無法解決,經查詢發現,6.4版本已經將x-pack 轉換為模塊,安裝時會自動添加。

由於6.2版本使用/usr/share/elasticsearch/bin/elasticsearch-plugin install 安裝的,使用yum 升級 es 服務會遺留就插件文件,所以要手動刪除 x-spak 插件文件夾 (每一個節點)。

執行操作如下:

mv /usr/share/elasticsearch/plugins/x-pack /esbackup/x-pack.20180919

插件刪除後,再次重啟服務,日誌報錯如下:

org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: Plugin [repository-s3] was built for Elasticsearch version 6.2.4 but version 6.4.1 is running

6.2 版本使用S3備份,原插件版本也無法使用了!!!!

[root@jp33e502-4-13 ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin list
repository-s3
WARNING: plugin [repository-s3] was built for Elasticsearch version 6.2.4 but version 6.4.1 is required

刪除S3備份插件

[root@jp33e502-4-13 ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin remove repository-s3
-> removing [repository-s3]...
-> preserving plugin config files [/etc/elasticsearch/repository-s3] in case of upgrade; use --purge if not needed
[root@jp33e502-4-13 ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin list

插件刪除後,再次重啟服務,日誌報錯如下:

S3 備份時集群內配置的key也需要刪除!!!

Caused by: java.lang.IllegalArgumentException: unknown secure setting [s3.client.default.access_key] please check that any required plugins are installed, or check the breaking changes documentation for removed settings
        at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:393) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:339) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:311) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:282) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.common.settings.SettingsModule.<init>(SettingsModule.java:135) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.node.Node.<init>(Node.java:343) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.node.Node.<init>(Node.java:256) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.1.jar:6.4.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.1.jar:6.4.1]
        ... 6 more
        Suppressed: java.lang.IllegalArgumentException: unknown secure setting [s3.client.default.secret_key] please check that any required plugins are installed, or check the breaking changes documentation for removed settings

刪除 key 信息:

/usr/share/elasticsearch/bin/elasticsearch-keystore remove s3.client.default.access_key
/usr/share/elasticsearch/bin/elasticsearch-keystore remove s3.client.default.secret_key

啟動es 服務正常,集群逐步恢復至正常狀態,萬幸數據沒有影響。

問題總結:

  早就聽說es升級比較生猛,今日一見果然不同凡響!!!
1:直接使用yum update elasticsearch  升級服務版本,要先看服務發布的release 信息,不要用常規思路對待es的小版本升級;
2:ES 服務小版本之間也可能做大改動,直接放棄之前版本的一些特性;
3:6.2 升級6.4 要先刪除再6.2 版本安裝的所有插件;
4:升級之前先在備份環境充分演練,梳理思路,整理步驟以便能夠快速完成升級;
5:備份數據;
6: .....

elasticsearch 6.2 版本升級至6.4 版本服務啟動報錯