【环境搭建】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,使配置生效

posted @ 2019-12-12 09:45  天天天蓝蓝调调  阅读(886)  评论(0编辑  收藏  举报