如何在 docker 上为 elasticsearch 运行 安装 xpack?

How to install xpack for elasticsearch running on docker?

我正在尝试在 ELK-Stack 上安装 xpack。 我将使用 3 个 Dockerfile 来完成此操作。此时我的 Dockerfile 看起来像这样:

# Orginal Image von elasticsearch laden
FROM docker.marksys.de/elasticsearch:latest
USER root

ADD ./x-pack-5.5.2.zip /usr/share/elasticsearch/plugins

RUN bin/elasticsearch-plugin install file:///usr/share/elasticsearch/plugins/x-pack-5.5.2.zip/
RUN elasticsearch

每次,当我将 Dockerfile 构建为图像时,构建过程都会在此处停止:

Exception in thread "main" java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [x-pack-5.5.2.zip]. Was the plugin built before 2.0?
    at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:334)
    at org.elasticsearch.plugins.InstallPluginCommand.jarHellCheck(InstallPluginCommand.java:518)
    at org.elasticsearch.plugins.InstallPluginCommand.verify(InstallPluginCommand.java:500)
    at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:543)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:217)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:201)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
    at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:69)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
    at org.elasticsearch.cli.Command.main(Command.java:88)
    at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
Caused by: java.nio.file.FileSystemException: /usr/share/elasticsearch/plugins/x-pack-5.5.2.zip/plugin-descriptor.properties: Not a directory
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.newByteChannel(Files.java:407)
    at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
    at java.nio.file.Files.newInputStream(Files.java:152)
    at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:114)
    at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:331)
    ... 11 more

我认为安装过程找不到 /x-pack-5.5.2.zip/plugin-descriptor.properties 文件。

ZIP 结构如下所示:

x-pack-5.5.2.zip

  • elasticsearch -content
  • Kibana -content
  • logstash -content

有人知道这方面的好教程吗?

我认为这应该安装 xpack 插件

RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

xpack 需要许可证,基本许可证是免费的

Elastic 的官方 Docker 映像已在 5.x 中包含 X-Pack。只需从 https://www.docker.elastic.co.

中选择正确的图片

我解决了问题:

在我上面的问题中,您可以看到我将 zip 添加到 /usr/share/elasticsearch/plugins。问题是,弹性。无法从此目录打开 zip。

我的解决方案:将 zip 添加到新目录或其他目录中,然后重新开始构建过程。在我的例子中,我在 /usr/share/elasticsearch 中添加了 zip。

问候 TheLegend31