Centos 7.9安装sonar

130 阅读3分钟

sonar安装文档

sonar结构说明

sonar 是一款代码质量检测工具,包含了sonarqube Server,sonarqube Database,sonarqube Scanners三个部分。

sonarqube Server:包含了ComuteEngine,SearchServer,WebServer,SonarQube Plugins四个组件。其中,WebServer是给到浏览器访问的组件。

sonarqube Database:给到sonarqube Server用的库。可以是mysql,oracle,sqlserver等数据库。

sonarqube Scanners:代码检测部分,可以集成到Maven,Gradle等里面。也可以单独使用。

下图是sonar的流程说明:

img

  1. sonarqube Scanners对代码进行检测并把结果存入sonarqube Server。
  2. 用户在 sonarqube Server中登录web端查看检测结果。

sonar安装

软件版本说明

由前文可知,sonar包含了三个部分,我们都分别需要安装。为了和我们产品的应用一致,我们选择sonarqube-7.8这个版本。因为这个版本是最后一个支持jdk1.8的版本,也是最后一个支持mysql的版本。下表为我们选择的软件版本信息:

sonarqube Server版本sonarqube Database类型sonarqube Scanners版本Jdk版本操作系统版本
7.8mysql4.21.8centos 7.9

软件下载

sonarqube Server下载地址

binaries.sonarsource.com/Distributio…

sonarqube Scanners下载地址

binaries.sonarsource.com/Distributio…

下载sonarqube Database

我们已经安装好了mysql,所以不需要额外下载。

sonarqube Server安装

服务器列表

sonarqubeScanners数据库
10.10.0.21810.10.0.21810.10.0.222:3306

数据库设置

我们需要在数据库给sonarqube Server建一个专门的schame,和专门的用户。sonarqube Server自己会创建表,不需要我们创建。

登录现有数据库,执行如下操作:

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER 'sonar' IDENTIFIED BY 'passwd';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'127.0.0.1' IDENTIFIED BY 'passwd';
mysql> FLUSH PRIVILEGES;

sonarqube Server设置

备注:我们所有的安装默认都以linkcrm用户进行,特殊情况下需要用到root用户,会额外提示。

  1. 操作系统内核参数设置

    本操作需要把用户切换为root。

    sonarqube Server内部集成了elasticsearch,需要设置相关的内核参数

    修改/etc/security/limits.conf,添加如下内容:

    linkcrm hard nofile 65536
    linkcrm soft nofile 65536
    

    修改/etc/sysctl.conf,添加如下内容

    vm.max_map_count = 262144
    

    执行命令,让内核参数生效

    sysctl -p
    

    设置完成,把用户切换回linkcrm,下面所有步骤在linkcrm用户下完成。

  2. sonarqube解压

    登录到服务器:10.10.0.218,下载sonarqube-7.8.zip并解压到目标文件夹。

    cd /app/software
    wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip
    mkdir -p /app/sonar/
    unzip sonarqube-7.8.zip -d /app/sonar
    
  3. 设置wrapper.conf文件

    打开wrapper.conf文件并添加如下的信息:

    cd /app/sonar/sonarqube-7.8
    vim conf/wrapper.conf
    

    找到#wrapper.java.command=/path/to/my/jdk/bin/java这一行,在下面加入如下的信息:

    wrapper.java.command=/app/java/jdk1.8.0_151/bin/java
    

    wrapper.java.command为jdk的java命令全路径

  4. 设置sonar.properties文件

    打开sonar.properties文件并添加如下的信息:

    cd /app/sonar/sonarqube-7.8
    vim conf/sonar.properties
    

    在文件的最后追加如下内容:

    sonar.jdbc.username=sonar
    sonar.jdbc.password=passwd
    sonar.jdbc.url=jdbc:mysql://10.10.0.222:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
    sonar.web.host=10.10.0.218
    sonar.web.port=9000
    sonar.login=admin
    sonar.password=admin
    

    如上各参数说明:

    sonar.jdbc.username:数据库用户
    sonar.jdbc.password:数据库密码
    sonar.jdbc.url:数据库连接
    sonar.web.host:sonarqube所在服务器
    sonar.web.port:sonarqube启动的端口
    sonar.login:登录sonarqubewebser的用户
    sonar.password:登录sonarqubewebser的用户密码
    

sonarqube Server启动

执行启动命令

cd /app/sonar/sonarqube-7.8
./bin/linux-x86-64/sonar.sh start

访问:http://10.10.0.218:9000/,显示如下页面,sonarqube Server安装完成。

image-20220624012606228

sonarqube Scanners安装

sonarqube Server只是一个处理数据,看数据,和存数据的平台,但数据得由sonarqube Scanners分析得来。接下来我们就安装sonarqube Scanners。

下载解压sonarqube Scanners

cd /app/software
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
mkdir -p /app/sonar/
unzip sonar-scanner-cli-4.2.0.1873-linux.zip -d /app/sonar

配置sonarqube Scanners

编辑/app/sonar/sonar-scanner-4.2.0.1873-linux/conf/sonar-scanner.properties文件,添加如下配置。

sonar.host.url=http://10.10.0.218:9000
sonar.sourceEncoding=UTF-8
sonar.language=java

设置启动脚本

创建文件/app/sonar/sonar-scanner-4.2.0.1873-linux/start-sonar-scanner.sh添加如下内容。

#!/bin/bash
sonar-scanner -e -Dsonar.projectKey=$1 -Dsonar.projectName=$1 -Dsonar.java.binaries=/app/links/code/crm/$1/target/classes -Dsonar.projectBaseDir=/app/links/code/crm/$1/src 

脚本中的$1表示代码文件夹名称。

设置start-sonar-scanner.sh为可执行文件

chmod 755 /app/sonar/sonar-scanner-4.2.0.1873-linux/start-sonar-scanner.sh

假设需要扫描link-auth的代码,

cd /app/sonar/sonar-scanner-4.2.0.1873-linux/
./start-sonar-scanner.sh link-auth

第一张图片是网上扒的,侵删