Получение elasticsearch не может работать как корневая ошибка после обновления с SonarQube 6.5 до 6.6. Больше ничего не изменилось

Получение ошибки elasticsearch «не может работать от имени пользователя root» после обновления с SonarQube 6.5 до 6.6. Больше ничего не изменилось.

Выпуск CentOS 6.8 (окончательная) Java(TM) SE Runtime Environment (сборка 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

person Raye Raskin    schedule 20.10.2017    source источник
comment
Проверьте пользователя, который запускает программное обеспечение. См. эта статья.   -  person Jeroen Heier    schedule 21.10.2017
comment
взгляните на michalwegrzyn.wordpress. com/2016/07/14/do-not-run-sonar-as-root   -  person meck373    schedule 27.02.2019


Ответы (4)


Я также столкнулся с этой проблемой, запустив SonarQube от имени пользователя root на Centos 7, а не внутри докера. Как упоминалось в предыдущих комментариях, проблема возникает из-за того, что SonarQube обновляет ElasticSearch, и новая версия больше не позволяет запускать себя с правами root.

В моей среде исправление было достаточно простым: я уже создал пользователя ("sonar") и группу ("sonar"), чтобы "владеть" файлами sonarqube. Поскольку мой процесс SonarQube выполнялся от имени пользователя root, он оставил журналы и временные файлы, принадлежащие пользователю root.
1. Я остановил службу.
2. Переназначены все права собственности ("chown -R sonar:sonar /opt/sonarqube-6.6")
3. Изменено #RUN_AS_USER= в /opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh строке 48 на RUN_AS_USER=sonar, и служба sonarqube и ее служба elasticsearch перезапущены. без дальнейших проблем. Мне пришлось перейти на http://<sonarhost:port>/setup для обновления базы данных, и оттуда все заработало нормально.

person John Elion    schedule 31.10.2017
comment
Этот ответ должен быть принят ОП, @RayeRaskin. См. также stackoverflow.com/a/47733598/766786, почему. - person Amedee Van Gasse; 19.12.2017
comment
работает отлично, если у вас нет пользователя сонара, просто добавьте useradd sonar, чтобы создать его перед шагом 2 - person carl verbiest; 07.04.2018

Изменения в системном:

User=sonar
Group=sonar

и измените весь исходный код, и #RUN_AS_USER=sonar он запустится. Кажется, ошибка в среде при запуске в корне, а затем su для сонара

person Việt Phải Học Bài    schedule 23.05.2018

Столкнувшись с той же проблемой, внесите некоторые изменения в мой файл службы сонара, и он начнет работать. ниже мой служебный файл сонара

[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
person dushyant    schedule 23.04.2019

Я скачал sonarqube-6.5 и попытался настроить нового пользователя "sonar", но у меня все еще не получается по той же причине - Ubuntu 16.4.

person nimish    schedule 03.05.2018