zoukankan      html  css  js  c++  java
  • 【环境搭建】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,使配置生效

  • 相关阅读:
    (转)Delphi写COM+的心得体会
    delphi透明组件(控件)开发
    Delphi 常用组件常见属性说明
    DELPHI方面输入EDIT
    BYTE 转字符串
    椭圆按纽制作
    数据库实例学生名册管理系统(DAO的使用实验)
    数据库如何快速创建连接字符串
    数据库使用DataReader的简单实例(两种办法)
    数据库ADO.NET的结构
  • 原文地址:https://www.cnblogs.com/Agnes1994/p/12027445.html
Copyright © 2011-2022 走看看