docker 上的 ELK 安装
ELK installation on docker
我使用以下命令从 here 获取了 ELK 容器:
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
它运行得非常好,但是如果没有我的 logstash 和 elasticsearch 配置我就不能使用它,我们可以吗?所以我终止了服务并添加了配置。我将用户更改为名为 elk:elk
的新用户。现在,当我尝试启动 elasticsearch 时,它失败并出现以下异常:
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /etc/elasticsearch/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /etc/elasticsearch/elasticsearch.keystore
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
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 org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77)
at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:207)
at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:226)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:291)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86)
Refer to the log for complete error details.
此错误在 github 上有一个未解决的问题,https://github.com/elastic/ansible-elasticsearch/issues/430
elasticsearch 尝试在其版本 6.x 中写入和读取其配置目录。
当前修复是显式设置 g+ws
的权限,
即
chmod g+ws /etc/elasticsearch
可能您需要为密钥库文件设置正确的所有权和权限。
# chown elasticsearch:elasticsearch /etc/elasticsearch/elasticsearch.keystore
# chmod 600 /etc/elasticsearch/elasticsearch.keystore
我使用以下命令从 here 获取了 ELK 容器:
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
它运行得非常好,但是如果没有我的 logstash 和 elasticsearch 配置我就不能使用它,我们可以吗?所以我终止了服务并添加了配置。我将用户更改为名为 elk:elk
的新用户。现在,当我尝试启动 elasticsearch 时,它失败并出现以下异常:
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /etc/elasticsearch/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /etc/elasticsearch/elasticsearch.keystore
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
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 org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77)
at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:207)
at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:226)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:291)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86)
Refer to the log for complete error details.
此错误在 github 上有一个未解决的问题,https://github.com/elastic/ansible-elasticsearch/issues/430
elasticsearch 尝试在其版本 6.x 中写入和读取其配置目录。
当前修复是显式设置 g+ws
的权限,
即
chmod g+ws /etc/elasticsearch
可能您需要为密钥库文件设置正确的所有权和权限。
# chown elasticsearch:elasticsearch /etc/elasticsearch/elasticsearch.keystore
# chmod 600 /etc/elasticsearch/elasticsearch.keystore