本文介绍在安装自定义插件时,出现控制台报错、变更卡住、无法验证通过等问题的排查与解决方法。

问题现象

上传与安装自定义插件时,出现控制台报错、变更卡住、无法验证通过或其他异常问题。

通用解决方案

在上传与安装自定义插件前,需要先在自建环境中,将插件放入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插件。
  • 插件的安全策略文件中包含了增删改查的权限时,需要注释掉对应的权限。
    例如hanlp插件,您可以在该插件的配置说明中查看安全策略。对于该插件,您需要注释掉plugin-security.policy文件中的以下内容。
    permission java.io.FilePermission "<>", "read,write,delete";
  • 对于Logstsh插件和Kibana插件,不支持安装自定义插件。如果需要安装,建议在自建环境中,通过原生插件安装命令安装成功后,再提交工单给阿里云Elasticsearch技术支持工程师。
    说明 对于符合规则的插件,插件安装后,您可以在主日志上查看插件日志。

控制台报错

  • 问题原因

    插件不符合规则,导致控制台验证失败。

  • 解决方法

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

变更卡住

导致该问题的原因有两个,需要按照以下步骤排查解决:
  1. 确认是否插件太大(默认小于50MB)。

    插件太大,会出现安装过程中插件加载慢的情况。出现该情况,需要中断变更,删除该插件,然后修改插件配置(例如减少分词类插件的分词),确认插件小于50MB后,再重新上传安装。

  2. 确认是否有数据节点在写入数据。
    • 是。需要耐心等待,说明上传过程属于业务高峰期,导致节点安装过程变更缓慢。
    • 否。需要中断变更,等待中断变更结束后,手动将该插件从自定义插件中删除,然后重新验证插件是否可用。

插件无法通过验证

导致该问题的原因很多,例如插件版本不一致、插件描述文档plugin-descriptor.properties有问题、没有打包该插件(通常按照递归压缩打包:zip -r)、目录层级错误等,这些为开源插件的问题,需要您自行排查解决。
说明 对于某些插件(例如jieba分词),如果插件版本与Elasticsearch版本不一致,手动修改版本号后,还需要重新打包插件。打包后,先将插件移动至plugins目录下,然后在本地测试环境中通过./bin/elasticsearch-plugins install命令安装测试。如果异常,需要通过异常说明,重新测试,通过后再上传。