本文介紹在安裝自定義插件時,出現控制臺報錯、變更卡住、無法驗證通過等問題的排查與解決方法。

問題現象

上傳與安裝自定義插件時,出現控制臺報錯、變更卡住、無法驗證通過或其他異常問題。

通用解決方案

在上傳與安裝自定義插件前,需要先在自建環境中,將插件放入Elasticsearch集群安裝目錄中的plugins目錄下,然后重啟集群加載插件,最后通過GET /_cat/plugins?v命令,獲取插件安裝成功的信息。在安裝插件時,需要注意:
  • 不允許上傳與阿里云Elasticsearch的系統默認插件同名的插件。
    如果您要上傳同名的系統插件,需要先修改待上傳的插件的名稱。對于pingyin、IK等插件,在自建環境測試安裝時,需要先刪除對應的原生插件,然后手動修改插件名稱,最后通過原生插件安裝命令在自建環境中進行安裝驗證,驗證無誤后,即可上傳至阿里云Elasticsearch進行安裝。
    ./bin/elasticsearch-plugin install file:///path-to-your-plugins.zip
  • 任何上傳的插件都需要在自建Elasticsearch中,通過原生插件安裝命令安裝通過,才可上傳至阿里云Elasticsearch進行安裝。
    ./bin/elasticsearch-plugin install file:///path-to-your-plugins.zip
  • 熱更新只支持IK和analysis-aliws插件。
  • 插件的安全策略文件中包含了增刪改查的權限時,阿里云Elasticsearch不支持上傳該類插件。例如:elasticsearch-analysis-hanlp插件。
  • 對于Logstash插件和Kibana插件,不支持安裝自定義插件。如果需要安裝,建議在自建環境中,通過原生插件安裝命令安裝成功后,再提交工單給阿里云Elasticsearch技術支持工程師。
    說明 對于符合規則的插件,插件安裝后,您可以在主日志上查看插件日志。

控制臺報錯

  • 問題原因

    插件不符合規則,導致控制臺驗證失敗。

  • 解決方法

    參見通用解決方案,修改插件信息。例如重命名插件、修改插件的配置文件等。

變更卡住

導致該問題的原因有兩個,需要按照以下步驟排查解決:
  1. 確認是否插件太大(默認小于50 MB)。

    插件太大,會出現安裝過程中插件加載慢的情況。出現該情況,需要中斷變更,刪除該插件,然后修改插件配置(例如減少分詞類插件的分詞),確認插件小于50 MB后,再重新上傳安裝。

  2. 確認是否有數據節點在寫入數據。
    • 是。需要耐心等待,說明上傳過程屬于業務高峰期,導致節點安裝過程變更緩慢。
    • 否。需要中斷變更,等待中斷變更結束后,手動將該插件從自定義插件中刪除,然后重新驗證插件是否可用。

插件無法通過驗證

導致該問題的常見原因以及解決方法請參見下表。

問題分類 常見原因 解決方法
版本不一致 插件指定的Elasticsearch版本與當前阿里云Elasticsearch實例版本不一致,導致版本不匹配。 對于某些插件(例如jieba分詞),如果插件指定的Elasticsearch版本與當前阿里云Elasticsearch實例版本不一致,則需要手動修改插件指定的Elasticsearch版本號,使其與當前阿里云Elasticsearch實例版本號一致,再重新打包插件。確保版本一致的具體步驟,請參見常見問題
缺少或無法找到插件描述文件plugin-descriptor.properties 目錄層級解壓后多了一層目錄,導致系統無法找到插件描述文件plugin-descriptor.properties。 解壓插件包后,檢查目錄層級是否多一層級。例如:在本地電腦使用WinRAR解壓,選擇解壓到當前文件夾,解壓后的文件直接是JAR文件,則為正常目錄層級。如果JAR文件外層多一層級目錄,則為非正常目錄層級,此時需要按照正確的方法重新打包,詳情請參見下面的“正確的打包方法”。
插件打包有問題 沒有按照規定進行打包,導致插件打包有問題。
正確的打包方法:
  • 借助WinRAR工具:選擇JAR相關文件,右鍵單擊添加到壓縮文件,壓縮文件格式為zip,壓縮文件名以elasticsearch開頭,且必須加對應elasticsearch版本號,例如:elasticsearch-analysis-ik-6.7.0.zip。
  • zip工具:按照遞歸壓縮方式進行打包,即執行zip -r命令進行zip壓縮即可。
插件存在安全問題 插件中定義了權限類敏感信息,導致插件存在安全問題。 不支持上傳存在安全隱患的插件,解決方法請參見通用解決方案
說明 確認版本號、插件描述文檔屬性(plugin-descriptor.properties)、打包方式以及安全性均沒有問題后,建議先將插件包移動至plugins目錄下,在本地測試環境中通過./bin/elasticsearch-plugins install命令進行安裝測試。如果測試異常,需要通過異常說明重新測試,測試成功后再上傳。