从SonarQube 6.5升级到6.6后,弹性搜索"无法以root身份运行"错误.没有其他改变

Ray*_*kin 16 runtimeexception elasticsearch sonarqube sonarqube-ops

从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
Run Code Online (Sandbox Code Playgroud)

Joh*_*ion 37

我也遇到过这个问题,在Centos 7上以root身份运行SonarQube,而不是在docker中运行.如前面的评论所述,问题来自SonarQube升级ElasticSearch,新版本不再允许自己以root身份运行.

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

  • OP,@ RayeRaskin应该接受这个答案.另请参阅/sf/answers/3341351891/. (5认同)
  • 完美地工作,如果您没有声纳用户,只需在步骤2之前添加`useradd sonar`即可创建一个 (3认同)