我最近通过dpkg添加了一个新节点(通过dpkg进行全新安装),随机的一台服务器在重新启动时不会启动elasticsearch。 手动尝试启动时出现以下错误:
sudo systemctl status elasticsearch elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2017-06-16 12:32:28 UTC; 3s ago Docs: http://www.elastic.co Process: 1437 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -Des.pidfile=$PID_DIR/elasticsearch.pid -Des.default.path.home=$ES_HOME -Des.default.p Main PID: 1437 (code=exited, status=3) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: java.io.FileNotFoundException: /var/run/elasticsearch/elasticsearch.pid (No such file or directory) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at java.io.FileOutputStream.open0(Native Method) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at java.io.FileOutputStream.open(FileOutputStream.java:270) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at java.io.FileOutputStream.<init>(FileOutputStream.java:213) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at java.io.FileOutputStream.<init>(FileOutputStream.java:162) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:194) Jun 16 12:32:28 els02.xyz.net elasticsearch[1437]: at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32) Jun 16 12:32:28 els02.xyz.net systemd[1]: elasticsearch.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED Jun 16 12:32:28 els02.xyz.net systemd[1]: elasticsearch.service: Unit entered failed state. Jun 16 12:32:28 els02.xyz.net systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
所以我继续在/ var / run / elasticsearch中创buildelasticsearch需要的文件夹,并将所有权更改为elasticsearch:elasticsearch。 这个弹性search开始后,罚款。 但重新启动同样的问题。
尝试更改/usr/lib/systemd/system/elasticsearch.service中的服务文件中的/ var /运行PID_DIR文件夹,但这给出了一个不同的错误:
java.io.FileNotFoundException:/var/run/elasticsearch.pid(权限被拒绝)
还有一件事我注意到,当我在/ var / run中手动创builddir并启动elasticsearch时,似乎工作正常,但GET / _nodes不返回任何操作系统或文件系统的统计信息。 这可能是一个完全不相关的问题,但我注意到这一点,因为我使用Opserver来监视我的集群,这个节点没有显示操作系统/硬件统计信息(在重启失败之前,它工作得很好)。
Linux版本:Ubuntu 16.04 Elasticsearch版本:1.7.3
意识到影响Elasticsearch 1.6的这个问题 – https://github.com/elastic/elasticsearch/issues/11594
我偶然发现了类似的东西。
我遵循这个答案,并configurationsystemd的tmpfiles.d(5)function,使其在启动时创build。