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

问题描述 投票:15回答:4

从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
elasticsearch sonarqube runtimeexception sonarqube-ops
4个回答
35
投票

我也遇到过这个问题,在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=第48行的/opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh更改为RUN_AS_USER=sonar,并且sonarqube服务及其弹性搜索服务重新启动而没有进一步的问题。我不得不去http://<sonarhost:port>/setup升级数据库,从那里一切正常。


2
投票

systemd中的变化:

User=sonar
Group=sonar

并更改所有源和#RUN_AS_USER=sonar它将运行。在root中运行然后su到声纳,似乎是环境中的错误


0
投票

我下载了sonarqube-6.5并尝试设置一个新用户“声纳”,但仍然因为同样的原因而失败了 - Ubuntu 16.4。


0
投票

面对同样的问题,在我的声纳服务文件中做一些更改,然后开始工作。下面是我的声纳服务文件

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking
#Type=simple
User=sonar
Group=sonar
PermissionsStartOnly=true
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
StandardOutput=syslog
LimitNOFILE=65536
LimitNPROC=8192
#TimeoutStartSec=5
Restart=always

[Install]
WantedBy=multi-user.target

另外按照更改声纳用户的主目录

$ usermod -d /opt/sonarqube sonar
© www.soinside.com 2019 - 2024. All rights reserved.