2017-10-20 80 views
8

从SonarQube 6.5升级到6.6后,获取弹性搜索“无法以root身份运行”错误。没有其他改变。从SonarQube 6.5升级到6.6后,获取弹性搜索“无法以root身份运行”错误。没有其他变化

CentOS版本6.8(决赛) 的Java(TM)SE运行时环境(建1.8.0_101-B13)

java.lang.RuntimeException: can not run elasticsearch as root 
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.2.jar:5.6.2] 
2017.10.20 11:59:14 WARN es[][o.e.b.ElasticsearchUncaughtExceptionHandler] uncaught exception in thread [main] 
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root 
     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.2.jar:5.6.2] 
Caused by: java.lang.RuntimeException: can not run elasticsearch as root 
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.2.jar:5.6.2] 
     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.2.jar:5.6.2] 
     ... 6 more 
+1

检查运行该软件的用户。参见[this](https://discuss.elastic.co/t/why-is-it-elasticsearch-is-not-allowed-to-run-as-root/60413/6)文章。 –

回答

13

我也遇到这个问题,运行SonarQube,如根,在CentOS 7,不码头里面。正如前面的评论中提到的那样,问题来自SonarQube升级ElasticSearch,而新版本不再允许自己以root身份运行。

在我的环境中,修复很简单:我已经创建了一个用户(“sonar”)和组(“sonar”)来“拥有”sonarqube文件。由于我的SonarQube进程已经以root身份运行,它已经保留了root所拥有的日志和临时文件。
1.我停止了服务。
2.再分配所有ownserships(“CHOWN -R声纳:声纳/opt/sonarqube-6.6”)
3. /opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh线48改变#RUN_AS_USER=RUN_AS_USER=sonar到并且两个sonarqube服务及其服务elasticsearch没有进一步的问题重新启动。我不得不去http://<sonarhost:port>/setup升级数据库,并从那里一切正常。

+3

这个答案应该被OP,@RayeRaskin接受。有关原因,另请参阅https://stackoverflow.com/a/47733598/766786。 –