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

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

ベストアンサー1

私も、SonarQube を docker 内ではなく Centos 7 上で root として実行したときにこの問題を経験しました。以前のコメントで述べたように、この問題は SonarQube が ElasticSearch をアップグレードしたことに起因しており、新しいバージョンでは root として実行できなくなりました。

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

おすすめ記事