CentOS7 安装 SonarQube 8

文章目录

  • 前期准备
  • SonarQube 平台安装
  • 安装 scanner
  • 分析

前期准备

安装需求:
https://docs.sonarqube.org/latest/requirements/requirements/
安装文档:
https://docs.sonarqube.org/latest/setup/install-server/

硬件要求:
SonarQube服务器的小规模(单个或小型团队)实例需要至少2GB的RAM才能高效运行,而操作系统则需要1GB的空闲RAM。如果要为大型团队或企业安装实例,则要求更高的要求。

我在VM上运行,分配的3G的内存空间。

Java:
CentOS7 安装 SonarQube 8_第1张图片
我安装的是 JDK 11,安装请参考:CentOS 7 安装 jdk11

数据库:
CentOS7 安装 SonarQube 8_第2张图片
我用的数据库是: SQL Server 2014
创建数据库:SonarQubeDB
排序规则:Chinese_PRC_CS_AS
因为: 排序规则必须区分大小写(CS)和区分重音(AS)

CentOS7 安装 SonarQube 8_第3张图片

READ_COMMITED_SNAPSHOT 必须在SonarQube数据库上设置。
MS SQL数据库的共享锁定策略可能会影响SonarQube运行时。确保将is_read_committed_snapshot_on其设置为true防止SonarQube在重负载下面临潜在的死锁。
查询示例is_read_committed_snapshot_on:

SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name='SonarQubeDB';

CentOS7 安装 SonarQube 8_第4张图片

查询示例更新is_read_committed_snapshot_on:

ALTER DATABASE SonarQubeDB SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

CentOS7 安装 SonarQube 8_第5张图片

Linux系统配置:

如果在Linux上运行,则必须确保:
vm.max_map_count大于或等于262144
fs.file-max大于或等于65536
运行sonarqube的用户至少可以打开65536个文件描述符
运行sonarqube的用户至少可以打开4096个线程

# 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

SonarQube 平台安装

下载:
页面:https://www.sonarqube.org/downloads/
我下载的是Community版本

# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.0.zip

解压:

# unzip sonarqube-8.0.zip

创建一个空的架构和一个sonarqube用户。授予此sonarqube用户权限create,update和delete对象为这个架构。

创建用户 sonarqube:

# adduser sonarqube

设置密码:

# passwd sonarqube

改变属主:

# chown -R sonarqube:sonarqube sonarqube-8.0
# ll sonarqube-8.0

CentOS7 安装 SonarQube 8_第6张图片

把文件部署到要部署的位置:

# mkdir /opt/sonarqube
# mv sonarqube-8.0 /opt/sonarqube/

修改配置文件:

# vim /opt/sonarqube/sonarqube-8.0/conf/sonar.properties

根据自己情况添加如下配置:

sonar.jdbc.url=jdbc:sqlserver://192.168.200.203:1433;databaseName=SonarQubeDB
sonar.jdbc.username=sa
sonar.jdbc.password=123456

sonar.web.host=192.168.80.128

sonar.path.data=/opt/sonarqube/sonarqube-8.0/data
sonar.path.temp=/opt/sonarqube/sonarqube-8.0/temp

保存完文件后,切换用户到 sonarqube 登录Linux

# su sonarqube

通过控制台方式运行:

$ /opt/sonarqube/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

查看数据库:
CentOS7 安装 SonarQube 8_第7张图片

数据库已经插入了多张表。

访问:http://192.168.80.128:9000/
要确保防火墙 9000 端口已经打开
CentOS7 安装 SonarQube 8_第8张图片

管理员账户登录:
用户名:admin
密码:admin

安装中文包:
CentOS7 安装 SonarQube 8_第9张图片
安装完成功,它会提示重启网站,点击网页上提示的重启,等一会儿重启成功后,自动进入登录页面:
CentOS7 安装 SonarQube 8_第10张图片
用 admin 登录后,网站已经变成中文的了
CentOS7 安装 SonarQube 8_第11张图片

再次运行 sonarqube 的时候不用通过 console 启动了,直接用 start 在后台运行就好了。
sonarqube 运行参数 console | start | stop | force-stop | restart | status | dump:

$ /opt/sonarqube/sonarqube-8.0/bin/linux-x86-64/sonar.sh
Usage: /opt/sonarqube/sonarqube-8.0/bin/linux-x86-64/sonar.sh { console | start | stop | force-stop | restart | status | dump }

安装可能遇到的问题:

1.配置信息的拼写错误
2.不小心用 root 启动会报错,这时需要切换到 sonarqube 用户,在切换前要删除掉 root 在 data,logs 文件夹中创建的 root 权限的文件。否则就算切换到 sonarqube 用户,还是启动不了。
其实大部分启动不了的原因都是权限问题。

安装 scanner

SonarQube 平台安装完成后,就可以安装 scanner 了,然后才可以创建项目:
https://docs.sonarqube.org/latest/analysis/overview/
scanner 支持一下安装:

  • Gradle - SonarScanner for Gradle
  • MSBuild - SonarScanner for MSBuild
  • Maven - use the SonarScanner for Maven
  • Jenkins - SonarScanner for Jenkins
  • Azure DevOps - SonarQube Extension for Azure DevOps
  • Ant - SonarScanner for Ant
  • anything else (CLI) - SonarScanner

这里以 Maven 为例:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

先决条件
Maven的3.x
至少正在使用SonarQube服务器支持的最低Java版本,JDK8
全局设置
编辑 Maven 的 settings.xml文件,添加 profile 节点

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.mavenpluginGroup>
    pluginGroups>
    <profiles>
        <profile>
            <id>sonarid>
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
            <properties>
                
                <sonar.host.url>
                  http://192.168.80.128:9000
                sonar.host.url>
            properties>
        profile>
     profiles>
settings>

分析

在要分析的Maven项目中运行:

mvn clean verify sonar:sonar

或者分两步执行:

mvn clean install
mvn sonar:sonar

执行成功后访问:
http://192.168.80.128:9000/projects
CentOS7 安装 SonarQube 8_第12张图片
可以看到分析结果,赶紧去修改吧。

祝你成功 ^ _ ^

你可能感兴趣的:(SonarQube)