当前位置: 首页 > 知识库问答 >
问题:

无法运行Sonar服务器,因为Elasticsearch无法以root身份运行

年运珧
2023-03-14

我正在尝试安装SonarQube:我遵循了以下步骤:

设置SOnarQube Tuto:这里

总结一下:

>

  • 下载声纳并将其移动到/opt/Sonar
  • 将这些coonfig步骤添加到/opt/sonar/conf/sonar.properties:

    sonar.jdbc.username=sonar sonar.jdbc.password=sonar

    sonar.jdbc.url=jdbc:mysql:/localhost:3306/sonar?UseUnicode=true&Characterencoding=utf8&RewriteBatchedStatements=true&UseConfigs=MaxPerformance

    而且

    sonar.web.host=127.0.0.1
    sonar.web.context=/sonar
    sonar.web.port=9000
    
    • 实现声纳即服务:

    sudo cp/opt/sonar/bin/linux-x86-64/sonar.sh/etc/init.d/sonar

    sudo gedit /etc/init.d/sonar
    

    插入两行新行:

    SONAR_HOME=/opt/sonar
    PLATFORM=linux-x86-64
    Modify the following lines:
    
    WRAPPER_CMD="${SONAR_HOME}/bin/${PLATFORM}/wrapper"
    WRAPPER_CONF="${SONAR_HOME}/conf/wrapper.conf"
    

    ...

    PIDDIR="/var/run"
    Register as a Linux service:
    
    sudo update-rc.d -f sonar remove
    sudo chmod 755 /etc/init.d/sonar
    sudo update-rc.d sonar defaults
    

    在这些步骤之后:我尝试从:localhost:9000/Sonar运行Sonar,而在执行:sudo/etc/init.d/Sonar start`之后,奇怪的是,它没有运行。

    因此,当我运行`sudo/etc/init.d/sonar status时,我发现它在几秒钟后发生了一些变化,并且在日志文件中抛出了一些错误,如下所示:

    .log:

    2017.12.09 18:05:14 ERROR es[][o.e.b.Bootstrap] Exception
    java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.3.jar:5.6.3]
    2017.12.09 18:05: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.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.3.jar:5.6.3]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.3.jar:5.6.3]
        ... 6 more
    

    有什么建议吗??

  • 共有2个答案

    长孙波鸿
    2023-03-14

    SonarSource已经升级了作为最新SonarQube LTS版本一部分使用的Elasticsearch工具。因此,SonarQube不能作为根运行。请参阅本博客和Sonarqube6.6升级说明以及这个SO问题。

    长孙承嗣
    2023-03-14

    更改sonar文件的root访问权限。尝试在正常用户访问中运行。

    chown <another user>:<user group> sonar.sh
    
     类似资料:
    • 问题内容: 我正在尝试安装SonarQube:我已经遵​​循了以下步骤: 设置SOnarQube Tuto:此处 总结一下: 下载Sonar并将其移至 将这些coonfig步骤添加到 : sonar.jdbc.username =声纳sonar.jdbc.password =声纳 sonar.jdbc.url = jdbc:mysql:// localhost:3306 / sonar?useUn

    • 我有一部基于Android的手机(2.3.6 ),拥有解锁的root权限。因为我想通过我的电脑访问我的手机,所以今天我安装了QtAdb和Android SDK。如果我打开一个命令提示符,我这样做了 亚行壳牌su 我明白了 # 因此,我可以在手机上复制、删除和推送文件(在手机上,我会收到一个使用“SuperSU”应用程序的通知) 但如果我在Windows 7下启动QtAdb,我会得到以下错误:“ad

    • 问题内容: 我试图按照正常的安装指南启动和运行ElasticSearch 。 Macbook上的一切运行正常,但是我试图在Ubuntu 11.04服务器上做同样的事情。 运行正常,我得到了回应。 但是,这是我尝试将ElasticSearch作为服务启动时得到的(我已经安装了服务包装器): 果然说不了本地主机:9200。 任何想法可能是什么问题? 编辑:服务日志显示: 问题答案: 服务器实例没有足够

    • 本文向大家介绍以非root用户身份运行Docker容器,包括了以非root用户身份运行Docker容器的使用技巧和注意事项,需要的朋友参考一下 当您在Docker容器中运行应用程序时,默认情况下,它有权访问所有root特权。您可能已经注意到,当打开Ubuntu Docker Container Bash时,默认情况下您以root用户身份登录。在应用程序的安全性方面,这可能是一个主要问题。任何局外人

    • 我使用Ansible安装了Nginx。要在Centos7上安装,我使用了yum软件包,因此默认情况下它是以root用户身份运行的。我希望它在Centos中以不同的用户(前nginx用户)身份启动和运行。当我尝试与其他用户一起运行时,会出现以下错误: nginx的工作。服务失败,因为控制进程已退出,错误代码为。有关详细信息,请参阅“systemctl status nginx.service”和“j

    • 问题内容: 我正在我的Linux计算机上尝试运行Elasticsearch 2.1.1。 当我尝试执行Elasticsearch时,出现以下错误: 我提到了互联网上的一些建议,他们提到要以其他用户身份运行它。我的情况是仅以root用户身份运行。如何在不以其他用户身份运行的情况下解决此问题。 问题答案: 根据以下代码片段, 您应该可以通过启用属性 es.insecure.allow.root 来实现