【環境搭建】SonarQube 8.0 部署到CentOS 6.8下


1.SonarQube架構介紹

SonarQube平台由4個組件組成:

  1. 一台SonarQube Server啟動3個主要過程:

    • Web服務器,供開發人員,管理人員瀏覽高質量的快照並配置SonarQube實例
    • 基於Elasticsearch的Search Server從UI進行后退搜索
    • Compute Engine服務器,負責處理代碼分析報告並將其保存在SonarQube數據庫中
  2. 一個SonarQube數據庫要存儲:

    • SonarQube實例的配置(安全性,插件設置等)
    • 項目,視圖等的質量快照。
  3. 服務器上安裝了多個SonarQube插件,可能包括語言,SCM,集成,身份驗證和管理插件
  4. 在構建/持續集成服務器上運行一個或多個SonarScanner,以分析項目
  5. 架構圖如下:

     

     6. SonarQube如何與其他ALM工具集成以及使用SonarQube的各種組件的位置: 

    1. )開發人員將他們的代碼放入他們最喜歡的SCM中:git,SVN,TFVC等。
    2. )Continuous Integration Server會觸發自動生成,並執行運行SonarQube分析所需的SonarScanner。
    3. )分析報告將發送到SonarQube服務器進行處理。

     

2.sonarqube 8.0安裝

前置條件:1)裝好open JDK 11 ,解壓即可,不用配置環境變量   

                    下載地址:http://jdk.java.net/archive/

                    下載版本:

 

 

 

                  2 )裝好Postgresql 10 

                  3 ) 准備好sonarqube 8.0社區版安裝包

 

 

平台說明:

    在Linux上運行,則必須確保:

  • vm.max_map_count 大於或等於262144
  • fs.file-max 大於或等於65536
  • 運行SonarQube的用戶可以打開至少65536個文件描述符
  • 運行SonarQube的用戶可以打開至少4096個線程

        用root用戶新增兩個配置文件即可滿足上述要求:

      vim /etc/sysctl.d/99-sonarqube.conf(加入下面兩行內容)

             vm.max_map_count=262144

             fs.file-max=65536

           vim /etc/security/limits.d/99-sonarqube.conf(加入下面兩行內容)

             sonarqube - nofile 65536

             sonarqube - nproc 4096

      

seccomp過濾器

默認情況下,Elasticsearch使用seccomp filter在大多數發行版中,此功能已在內核中激活,但是在諸如Red Hat Linux 6的發行版中,此功能已停用。如果使用不具有此功能的發行版,並且無法在激活seccomp的情況下升級到較新版本,則必須通過sonar.search.javaAdditionalOpts$ SONARQUBE HOME / conf / sonar.properties_中進行更新來顯式停用此安全層

sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false

您可以使用以下方法檢查seccomp在內核上是否可用:

$ grep SECCOMP /boot/config-$(uname -r)

如果您的內核具有seccomp,您將看到:

CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y




配置文件修改說明:

      1.修改sonarqube 8.0/conf/wrapper.conf

      取消注釋這一行,並改為指向自己的open JDK 11的路徑即可(即/path/to/my/jdk/bin/java)

      wrapper.java.command=/usr/local/jdk11/jdk11-11/bin/java

      2.修改sonarqube 8.0/conf/sonar.properties

      需要修改的僅有以下三項,其他用默認配置即可

      sonar.jdbc.username=sonarqube

      sonar.jdbc.password=密碼

      sonar.jdbc.usr=jdbc:postgresql://IP:5432/sonarqube

 

權限修改說明:

     sonarqube不能用root用戶啟動,故新建用戶,並改權限

     adduser sonarqube

     passwd sonarqube  (可省略這一步)

     chown -R sonarqube:sonarque  sonarqube 8.0

 

啟動sonarqube 8.0 server說明:

    su sonarqube

    cd /sonarqube 8.0/bin/linux-x86-64

    ./sonar.sh console

 

 如果輸出的最后兩行如下,就說明運行成功了:

            jvm 1 | 2019.10.29 01:59:14 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
            jvm 1 | 2019.10.29 01:59:14 INFO app[][o.s.a.SchedulerImpl] SonarQube is up

 啟動成功后,瀏覽器中訪問IP:9000即可進入sonarqube管理界面,登錄名、密碼 admin、 admin

 

再次運行 sonarqube 的時候不用通過 console 啟動了,直接用 start 在后台運行就好了。
sonarqube 運行參數 console | start | stop | force-stop | restart | status | dump

 

常見報錯解決:

process [web] is stopped

failed to initialize component [standardserver[-1]]

解決辦法:查看9000端口是否被占用

                 netstat -apn | grep 9000

                 若被占用, 則修改sonar.properties的webserver的配置

                  sonar.web.port=9002

 

process [es] is stopped

j

 

 

(3)用root用戶,配置sysctl.conf,在底部添加如下內容

vi /etc/sysctl.conf
vm.max_map_count=655360

(4)用root用戶,執行sysctl -p,使配置生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM