正如主题所述,尝试为我的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”的目录:
有人对如何进行此操作有任何建议吗?
答案 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知道插件的名称。
仅有的两个陷阱是:
如果可以做到这一点,则可以启动ES,它应该可以加载所有内容。