2017-10-20 24 views
8

Obtention de l'erreur elasticsearch "ne peut pas s'exécuter en tant que root" après la mise à niveau de SonarQube 6.5 vers 6.6. Rien d'autre n'a changé.Obtention de l'erreur elasticsearch "impossible à exécuter en tant que root" après la mise à niveau de SonarQube 6.5 vers 6.6. Rien d'autre n'a changé

CentOS 6.8 libèrent (Final) Java (TM) SE Runtime Environment (build 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

Vérifiez l'utilisateur qui exécute le logiciel. Voir [cet article] (https://discuss.elastic.co/t/why-is-it-elasticsearch-is-not-allowed-to-run-as-root/60413/6) article. –

Répondre

13

J'ai aussi ce problème, en cours d'exécution sonarqube, en tant que root, sur CentOS 7, non docker à l'intérieur. Comme mentionné dans les commentaires précédents, le problème provient de la mise à niveau de ElasticSearch par SonarQube, et la nouvelle version ne permet plus d'être exécutée en tant que root.

Dans mon environnement le correctif était assez facile: j'avais déjà créé un utilisateur ("sonar") et un groupe ("sonar") pour "posséder" les fichiers sonarqube. Comme mon processus SonarQube fonctionnait en tant que root, il avait quitté les fichiers journaux et temporaires détenus par root.
1. J'ai arrêté le service.
2. réaffecté tous les ownserships ("chown sonar -R: /opt/sonarqube-6.6 sonar")
3. Changé #RUN_AS_USER= en /opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh ligne 48-RUN_AS_USER=sonar et à la fois le service sonarqube et son service ElasticSearch redémarré sans autres problèmes. Je devais aller à http://<sonarhost:port>/setup pour mettre à jour la base de données et à partir de là tout a bien fonctionné.

+3

Cette réponse doit être acceptée par l'OP, @RayeRaskin. Voir aussi https://stackoverflow.com/a/47733598/766786 pour la raison pourquoi. –