无法安装search-guard-“错误:插件zip中缺少`elasticsearch`目录”

时间:2018-07-30 08:41:56

标签: elasticsearch elastic-stack

正如主题所述,尝试为我的ELK堆栈安装search-guard插件时遇到问题:

[XXX@XXXX bin]$ ./elasticsearch-plugin install -b file:///home/xxxx/search-guard-6-6.2.1-21.0.zip
-> Downloading file:///home/xxxx/search-guard-6-6.2.1-21.0.zip
[=================================================] 100%  
ERROR: `elasticsearch` directory is missing in the plugin zip

我尝试从自定义目录中执行此操作,然后从家开始执行this answer,但没有帮助。解压缩存档时,可以看到那里有一个名为“ elasticsearch”的目录:

有人对如何进行此操作有任何建议吗?

1 个答案:

答案 0 :(得分:0)

该错误来自lib \ plugin-cli-x.x.x.jar中的InstallPluginCommand.class,它的确切含义是。这是通过zip文件中的条目读取时的一部分代码片段:

ZipInputStream zipInput = new ZipInputStream(Files.newInputStream(zip));

try {
    ZipEntry entry;
    while((entry = zipInput.getNextEntry()) != null) {
        if (entry.getName().startsWith("elasticsearch/")) {
            hasEsDir = true;
            ...
    }

}

if (!hasEsDir) {
    throw new UserException(2, "`elasticsearch` directory is missing in the plugin zip");
}

我意识到这对您没有多大帮助,但是作为最后的努力,如果您无法找到问题的根本原因,我要做的一件事就是仅复制文件从zip文件到es插件目录(在本例中为/usr/share/elasticsearch/plugins)。它们位于/ plugins中,但位于目录下,该目录是Elasticsearch知道插件的名称。

仅有的两个陷阱是:

  1. 您需要知道要在/ plugins下创建的目录名称。
  2. 您需要知道plugin-descriptor.properties文件的替换值。

如果可以做到这一点,则可以启动ES,它应该可以加载所有内容。