SonarQube 7.2无法在CentOS 7上以systemd开头 [英] SonarQube 7.2 won't start with systemd on CentOS 7

查看:103
本文介绍了SonarQube 7.2无法在CentOS 7上以systemd开头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在VM上安装了CentOS7,并尝试正确安装SonarQube 7.2.1.因此,我遵循

  • 确保PostgreSQL数据库具有自己的用户 sonar ,并创建了一个名为 sonar 的数据库.而且,显然,数据库用户 sonar 应该拥有这个 sonar 数据库.就我而言,我在数据库用户名和实际数据库名中都使用了 sonar ,但是您可以随意使用任何一个.

  • 确保下载并提取SonarQube之后,将 sonarqube 移到/op/目录:

    sudo mv sonarqube-7.6/opt/sonarqube

    然后/opt/sonarqube 目录归Linux用户 sonarqube 拥有,在我的情况下为 sonar .

  • 确保在创建和编辑/etc/systemd/system/sonar.service 文件之后,该文件也由 sonarqube linux用户拥有.

  • /etc/systemd/system/sonar.service 文件的内容应类似于以下内容:

    [单位]

    Description = SonarQube服务

    After = syslog.target network.target

    [服务]

    Type = forking

    ExecStart =/opt/sonarqube/bin/linux-x86-64/sonar.sh start

    ExecStop =/opt/sonarqube/bin/linux-x86-64/sonar.sh停止

    User = sonar

    Group =声纳

    Restart =总是

    [安装]

    WantedBy = multi-user.target

    请注意 User Group 指向linux声纳用户,而我是 sonar .您可以是 johndoe .

  • 编辑/opt/sonarqube/bin/linux-x86-64/sonar.sh 并使用

    更新 #RUN_AS_USER

    RUN_AS_USER =声纳

    请注意,这也是Linux声纳用户,而我是 sonar .

  • SonarQube似乎是一个JAVA内存匮乏的Web应用程序.因此,请按照此帖子更新相关的内存配置.请记住,该帖子基于Centos 7.6.如果您对Linux有所了解,则需要更新相关文件.

  • 别忘了重新启动PostgreSQL,Sonar Service和NGINX(如果您是传递给Sonar的代理)

    sudo systemctl重新启动postgresql-9.6&&sudo systemctl重新启动声纳sudo systemctl重新启动nginx

  • 检查所有这些服务的状态,并确保所有服务均处于 active / running 状态:

    sudo systemctl状态postgresql-9.6&&sudo systemctl状态声纳sudo systemctl状态nginx

  • 希望获得帮助!

    I got CentOS7 on a VM and I try to install properly SonarQube 7.2.1. So I follow this tutorial and install PostgreSQL instead of the MariaDB. I edit the sonar.properties as they say and I correctly install Java 8.

    When I want to start with sudo systemctl start sonar I got an error so I do journalctl -xe and systemctl status sonar.service

    The first return me

    L'unité (unit) sonar.service a commencé à démarrer.
    août 03 14:20:44 localhost.localdomain bash[19570]: /bin/bash: /home/enovia/sonarqube-7.2.1/bin/linux-x86-64/sonar.sh: Aucun fichier ou dossier de ce type
    août 03 14:20:44 localhost.localdomain systemd[1]: sonar.service: control process exited, code=exited status=127
    août 03 14:20:44 localhost.localdomain systemd[1]: Failed to start SonarQube Service.
    -- Subject: L'unité (unit) sonar.service a échoué
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    

    And the second

    sonar.service - SonarQube Service
       Loaded: loaded (/etc/systemd/system/sonar.service; enabled; vendor preset: disabled)
    
      Active: activating (auto-restart) (Result: exit-code) since ven. 2018-08-03 14:41:14 CEST; 3s ago
    
     Process: 21093 ExecStart=/bin/bash /home/enovia/sonarqube-7.2.1/bin/linux-x86-64/sonar.sh start (code=exited, status=127)
    
    
    août 03 14:41:14 localhost.localdomain systemd[1]: sonar.service: control process exited, code=exited status=127
    
    août 03 14:41:14 localhost.localdomain systemd[1]: Failed to start SonarQube Service.
    
    août 03 14:41:14 localhost.localdomain systemd[1]: Unit sonar.service entered failed state.
    
    août 03 14:41:14 localhost.localdomain systemd[1]: sonar.service failed.
    

    Here's my sonar.properties :

    sonar.jdbc.username=sonar
    
    sonar.jdbc.password=DatabasePass
    
    sonar.jdbc.url=jdbc:postgresql://localhost/sonar
    
    sonar.web.port=10900
    

    Sonar logs file :

    `

    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.07.30 15:50:44 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
    2018.07.30 15:50:44 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.07.30 15:50:45 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
    2018.07.30 15:50:45 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    2018.07.30 15:50:58 INFO  app[][o.e.p.PluginsService] no modules loaded
    2018.07.30 15:50:58 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
    2018.07.30 15:52:30 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
    2018.07.30 15:52:32 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/home/enovia/Bureau/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/home/enovia/Bureau/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/home/enovia/Bureau/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /home/enovia/Bureau/sonarqube-7.2.1/temp/sq-process8191574965959719695properties
    2018.07.30 15:53:36 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
    2018.07.30 15:53:38 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
    2018.07.30 15:53:38 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    2018.07.30 15:53:38 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.07.31 12:05:33 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
    2018.07.31 12:05:33 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.07.31 12:05:34 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
    2018.07.31 12:05:34 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    Startup failed: Timed out waiting for signal from JVM.
    JVM did not exit on request, terminated
    JVM exited on its own while waiting to kill the application.
    JVM exited in response to signal SIGKILL (9).
    JVM Restarts disabled.  Shutting down.
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.07.31 12:15:56 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
    2018.07.31 12:15:56 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.07.31 12:15:57 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
    2018.07.31 12:15:57 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    2018.07.31 12:15:58 INFO  app[][o.e.p.PluginsService] no modules loaded
    2018.07.31 12:15:58 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
    2018.07.31 12:16:08 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
    2018.07.31 12:16:08 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/home/enovia/Bureau/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/home/enovia/Bureau/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/home/enovia/Bureau/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /home/enovia/Bureau/sonarqube-7.2.1/temp/sq-process4251581204595748290properties
    2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
    2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
    2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    2018.07.31 12:16:25 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.08.01 13:41:07 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp
    2018.08.01 13:41:07 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.08.01 13:41:07 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/sonarqube-7.2.1/elasticsearch]: /home/enovia/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/sonarqube-7.2.1/temp/conf/es
    2018.08.01 13:41:07 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    2018.08.01 13:41:09 INFO  app[][o.e.p.PluginsService] no modules loaded
    2018.08.01 13:41:09 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
    2018.08.01 13:41:10 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 1
    2018.08.01 13:41:10 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
    2018.08.01 13:41:10 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.08.01 15:17:17 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp
    2018.08.01 15:17:17 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.08.01 15:17:18 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/sonarqube-7.2.1/elasticsearch]: /home/enovia/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/sonarqube-7.2.1/temp/conf/es
    2018.08.01 15:17:18 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    2018.08.01 15:17:18 INFO  app[][o.e.p.PluginsService] no modules loaded
    2018.08.01 15:17:18 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
    2018.08.01 15:17:20 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 1
    2018.08.01 15:17:20 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
    2018.08.01 15:17:20 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.08.01 15:18:01 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp
    
    WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException: /home/enovia/sonarqube-7.2.1/temp/conf/es/elasticsearch.yml
    java.nio.file.AccessDeniedException: /home/enovia/sonarqube-7.2.1/temp/conf/es/elasticsearch.yml
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
        at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
        at java.nio.file.Files.delete(Files.java:1126)
        at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:170)
        at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:165)
        at java.nio.file.Files.walkFileTree(Files.java:2670)
        at java.nio.file.Files.walkFileTree(Files.java:2742)
        at org.sonar.process.FileUtils2.deleteDirectoryImpl(FileUtils2.java:127)
        at org.sonar.process.FileUtils2.deleteDirectory(FileUtils2.java:112)
        at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:117)
        at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:101)
        at java.nio.file.Files.walkFileTree(Files.java:2670)
        at org.sonar.application.AppFileSystem.createOrCleanTempDirectory(AppFileSystem.java:96)
        at org.sonar.application.AppFileSystem.reset(AppFileSystem.java:62)
        at org.sonar.application.App.start(App.java:55)
        at org.sonar.application.App.main(App.java:78)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
        at java.lang.Thread.run(Thread.java:748)
    <-- Wrapper Stopped
    --> Wrapper Started as Daemon
    Launching a JVM...
    Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
      Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
    
    2018.08.01 15:38:18 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /etc/sonarqube-7.2.1/temp
    2018.08.01 15:38:18 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
    2018.08.01 15:38:18 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/etc/sonarqube-7.2.1/elasticsearch]: /etc/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/etc/sonarqube-7.2.1/temp/conf/es
    2018.08.01 15:38:18 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    2018.08.01 15:38:19 INFO  app[][o.e.p.PluginsService] no modules loaded
    2018.08.01 15:38:19 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
    2018.08.01 15:38:29 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
    2018.08.01 15:38:29 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/etc/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/etc/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/etc/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /etc/sonarqube-7.2.1/temp/sq-process1389488387217549973properties
    2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
    2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
    2018.08.01 15:38:46 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
    2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    <-- Wrapper Stopped
    

    解决方案

    I recently encountered this sonarqube restarting issue, on Centos 7.6 with SonarQube 7.6, which took a toll my CICD configuration time! So, thought sharing this might save some other's time! There are few things to look for and update them to fix this.

    1. Ensure /var/lib/pgsql/9.6/data/pg_hba.conf has been updated like below:

    2. Ensure, PostgreSQL database has its own user sonar and a database named sonar is created. And, obviously, the database user sonar should own this sonar database. In my case, I am using sonar for both database user and actual database name but, you can use any as you please.

    3. Ensure after downloading and extracting SonarQube, you move sonarqube to /op/ directory:

      sudo mv sonarqube-7.6 /opt/sonarqube

      Then /opt/sonarqube directory is owned by sonarqube linux user, in my case it's sonar.

    4. Ensure after creating and editing /etc/systemd/system/sonar.service file, it's also owned by sonarqube linux user.

    5. The content of the /etc/systemd/system/sonar.service file should look similar as below:

      [Unit]

      Description=SonarQube service

      After=syslog.target network.target

      [Service]

      Type=forking

      ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start

      ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop

      User=sonar

      Group=sonar

      Restart=always

      [Install]

      WantedBy=multi-user.target

      Notice the User and Group points to linux sonarqube user, mine is sonar. Yours can be johndoe.

    6. Edit /opt/sonarqube/bin/linux-x86-64/sonar.sh and update #RUN_AS_USER with

      RUN_AS_USER=sonar

      Notice this is also the same linux sonarqube user, mine is sonar.

    7. SonarQube seems to be a JAVA memory hungry web app. So, follow this post to update relevant memory configurations. Remember that post is based on Centos 7.6. You need to update relevant files if you are on a diff taste of linux.

    8. Don't forget to restart PostgreSQL, Sonar Service and NGINX (if you are proxy passing to Sonar)

      sudo systemctl restart postgresql-9.6 && sudo systemctl restart sonar && sudo systemctl restart nginx

    9. Check the status for all these services and ensure all of them are in active/running status:

      sudo systemctl status postgresql-9.6 && sudo systemctl status sonar && sudo systemctl status nginx

    Hope this help!

    这篇关于SonarQube 7.2无法在CentOS 7上以systemd开头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆