web-dev-qa-db-ja.com

SonarQube 6.5から6.6にアップグレードした後、elasticsearchを取得すると「rootとして実行できません」エラーが発生します。他に変更はありません

SonarQube 6.5から6.6にアップグレードした後、elasticsearchを取得すると「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
16
Raye Raskin

また、Docker内ではなくCentos 7でルートとしてSonarQubeを実行しているこの問題も発生しました。前のコメントで述べたように、問題はElasticSearchをアップグレードするSonarQubeに由来し、新しいバージョンではもはやrootとして実行することを許可していません。

私の環境では、修正は非常に簡単でした。ユーザー(「ソナー」)とグループ(「ソナー」)を作成して、sonarqubeファイルを「所有」していました。 SonarQubeプロセスはルートとして実行されていたため、ログと一時ファイルはルートが所有していました。
1。サービスを停止しました。
2。すべての所有者を再割り当てしました(「chown -R sonar:sonar /opt/sonarqube-6.6」)
3。 #RUN_AS_USER=行48の/opt/sonarqube-6.6/bin/linux-x86-64/sonar.shRUN_AS_USER=sonarに変更し、sonarqubeサービスとelasticsearchサービスの両方が問題なく再起動した。データベースをアップグレードするためにhttp://<sonarhost:port>/setupに行かなければならず、そこからすべてがうまくいきました。

36
John Elion

Systemdの変更:

User=sonar
Group=sonar

すべてのソースと#RUN_AS_USER=sonar実行されます。ルートで実行してからソナーにsuすると、環境にエラーがあるようです

同じ問題に直面し、私のソナーサービスファイルにいくつかの変更を加えると、動作し始めます。以下は私のソナーサービスファイルです

[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
0
dushyant

Sonarqube-6.5をダウンロードし、新しいユーザー「sonar」を設定しようとしましたが、それでもUbuntuが同じ理由で失敗します-Ubuntu 16.4。

0
nimish