gpt4 book ai didi

elasticsearch - Elasticsearch path.repo阻止服务启动

转载 作者:行者123 更新时间:2023-12-03 01:48:44 24 4
gpt4 key购买 nike

我想在这里存储快照:

/root/backups/elastic

所以我在/etc/elasticsearch/elasticsearch.yml的末尾添加了这一行:
path.repo: ["/root/backups/elastic"]

当我尝试启动elasticsearch服务时,出现错误提示该服务无法启动。
在注释该行之后,我可以再次启动该服务。
在日志文件中,错误提示:
java.lang.IllegalStateException: Unable to access 'path.repo' (/root/backups/elastic)
at org.elasticsearch.bootstrap.Security.addPath(Security.java:316)
at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:262)
at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212)
at org.elasticsearch.bootstrap.Security.configure(Security.java:118)
at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:212)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:183)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
Caused by: java.nio.file.AccessDeniedException: /root/backups
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.checkAccess(UnixFileSystemProvider.java:308)
at java.nio.file.Files.createDirectories(Files.java:702)
at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337)
at org.elasticsearch.bootstrap.Security.addPath(Security.java:314)

我使用以下命令来解决问题:
sudo chmod 777 /root/backups/
sudo chown elasticsearch /root/backups/
sudo chown elasticsearch /root/backups/elastic/

怎么了?

最佳答案

好吧,首先使用根目录进行备份是一个非常糟糕的主意,考虑到所有权限,这是一个安全的噩梦。 AccessDeniedException可能无法对elasticsearch访问root目录。

$ ls -l /root
ls: cannot open directory '/root': Permission denied
$ ls -l /
drwx------ 10 root root 4096 Jan 25 22:41 root

如果您真的只想测试 chmod o+rx /root,则该异常应该消失。我强烈建议使用共享的SAN / NAS挂载点或AWS S3文件存储进行备份。

其次,我假设您使用共享文件系统方法。

您可能需要添加一些信息来推断问题。您的集群中有多少个节点?您正在运行什么Elasticsearch版本?

设置 path.repo必须在集群中所有节点的 elasticsearch.yml中。即使节点启动,备份也可能失败,从而导致还原失败。

关于elasticsearch - Elasticsearch path.repo阻止服务启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com