2017-10-20 16 views
8

SonarQube 6.5를 6.6으로 업그레이드 한 후 elasticsearch를 "루트로 실행할 수 없습니다"오류가 발생합니다. 그 밖의 것은 바뀌지 않았습니다.SonarQube 6.5에서 6.6으로 업그레이드 한 후 elasticsearch가 "루트로 실행되지 않음"오류가 발생합니다. 변경된 사항이 없습니다

에 CentOS 6.8 (최종) 자바 (TM) SE Runtime Environment (JRE)를 해제 (빌드 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

나는 또한, CentOS의 7, 루트로 SonarQube 실행이 문제를, 경험하지 내부 도커. 이전 의견에서 언급했듯이 문제는 SonarQube 업그레이드 ElasticSearch에서 비롯되었으며 새 버전에서는 더 이상 루트로 실행할 수 없습니다.

제 환경에서는 수정이 쉽습니다. 이미 사용자 ("sonar")와 그룹 ("sonar")을 만들어서 sonarqube 파일을 "소유"했습니다. 내 SonarQube 프로세스가 루트로 실행 되었기 때문에 루트가 소유 한 로그 및 임시 파일을 남겨 두었습니다.
1. 서비스가 중단되었습니다.
2. 재 할당 모든 ownserships ("대한 Chown -R 소나 : 수중 음파 탐지기 /opt/sonarqube-6.6")
3. RUN_AS_USER=sonar/opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh 라인 (48)에 #RUN_AS_USER=을 변경하고 sonarqube의 서비스와 elasticsearch 서비스를 모두 더 문제없이 다시 시작됩니다. 나는 데이터베이스를 업그레이드하기 위해서 http://<sonarhost:port>/setup으로 가야했고, 거기에서 모든 것이 잘 돌아갔다.

+3

이 답변은 OP, @ RayeRaskin에서 받아 들여야합니다. 이유는 https://stackoverflow.com/a/47733598/766786을 참조하십시오. –