本文介绍在安装自定义插件时,出现控制台报错、变更卡住、无法验证通过等问题的排查与解决方法。
问题现象
在上传与安装自定义插件时,出现控制台报错、变更卡住、无法验证通过或其他异常问题。
通用解决方案
在上传与安装自定义插件前,需要先在自建环境中,将插件放入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技术支持工程师。
说明 对于符合规则的插件,插件安装后,您可以在主日志上查看插件日志。
控制台报错
- 问题原因
插件不符合规则,导致控制台验证失败。
- 解决方法
参见通用解决方案,修改插件信息。例如重命名插件、修改插件的配置文件等。
变更卡住
导致该问题的原因有两个,需要按照以下步骤排查解决:
- 确认是否插件太大(默认小于50MB)。
插件太大,会出现安装过程中插件加载慢的情况。出现该情况,需要中断变更,删除该插件,然后修改插件配置(例如减少分词类插件的分词),确认插件小于50MB后,再重新上传安装。
- 确认是否有数据节点在写入数据。
- 是。需要耐心等待,说明上传过程属于业务高峰期,导致节点安装过程变更缓慢。
- 否。需要中断变更,等待中断变更结束后,手动将该插件从自定义插件中删除,然后重新验证插件是否可用。
插件无法通过验证
导致该问题的原因很多,例如插件版本不一致、插件描述文档plugin-descriptor.properties有问题、没有打包该插件(通常按照递归压缩打包:zip -r)、目录层级错误等,这些为开源插件的问题,需要您自行排查解决。
说明 对于某些插件(例如jieba分词),如果插件版本与Elasticsearch版本不一致,手动修改版本号后,还需要重新打包插件。打包后,先将插件移动至plugins目录下,然后在本地测试环境中通过
./bin/elasticsearch-plugins install
命令安装测试。如果异常,需要通过异常说明,重新测试,通过后再上传。