SonarQube部署及代码质量扫描入门教程

近期在学习SDL流程中的一些开源工具的使用,公司已有的源代码审计流程是‪ :自研前端扫描(入口) + Checkmarx(引擎)+JIRA(漏洞管理)的一套半自动提测流程,实现的效果是在项目研发完成和项目验收节点完成半自动的源代码审计。

由于 Checkmarx 扫描速度慢,公司快速敏捷开发的引入及DEVOPS流程中无法和jenkins等自动发布平台做到自动联动和轻量级扫描,将一些部署的过程作为笔记记录下来,方便后期查看。

0x00:部署环境

  • 系统:CentOS-7-x86_64-DVD-1908.ISO
  • JDK: jdk-11.0.6_linux-x64_bin.tar
  • SonarQube:8.1
  • 数据库:PostgreSQL 10

最新的SonarQube社区版下载地址: https://www.sonarqube.org/downloads/

SonarQube 安装要求:https://docs.sonarqube.org/latest/requirements/requirements/

百度网盘已经打包好JDK和sonar的安装包:

 链接:https://pan.baidu.com/s/1jMglqR4XxRbRIeb_RihnIg 
 提取码:2go4  

注意:不在支持MYSQL数据库

0x01:准备工作

1、安装JDK 11

mkdir -p /usr/java
上传jdk-11.0.6_linux-x64_bin.tar.gz到/usr/java/目录执行:
cd /usr/java/
tar -zxf jdk-11.0.6_linux-x64_bin.tar.gz
vi /etc/profile
source /etc/profile
可查看配置成功
[root@localhost jdk-11.0.6]# java -version
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
《SonarQube部署及代码质量扫描入门教程》

2、安装PostgreSQL 10 创建数据库

1、安装rpm文件
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、安装客户端
yum install postgresql10
3、安装服务端
yum install postgresql10-server
4、初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
5、设置自动启动并且启动postgresql服务
systemctl enable postgresql-10
systemctl start postgresql-10
6、创建用户和数据库:使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码)
su - postgres
7、登录postgresql数据库
psql
8、创建用户和数据库并授权
create user sonar with password 'sonapassword[';   // 创建用户
create database sonar owner sonar;         // 创建数据库
grant all privileges on database sonar to sonar;   // 授权
9、退出psql(输入 \q 再按回车键即可)
\q
《SonarQube部署及代码质量扫描入门教程》
10、开启 PostgreSQL 远程访问:
  修改/var/lib/pgsql/10/data/postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*” 
《SonarQube部署及代码质量扫描入门教程》
修改/var/lib/pgsql/10/data/pg_hba.conf文件,增加下图红框部分内容 
《SonarQube部署及代码质量扫描入门教程》
11、切换到root用户,重启postgresql服务
systemctl restart postgresql-10.service
12、采用Navicat Premium可以直接连接成功
《SonarQube部署及代码质量扫描入门教程》

0x02:部署SonarQube

1、调整系统参数 :
sysctl -w  vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -u 4096 sonarqube
ulimit -n 65536 sonarqube
2、创建专用账号sonar
#创建账号并授权
useradd sonar
passwd sonar

#授予sudo权限
visudo
#在文件末尾增加
sonar    ALL=(ALL)       ALL

注意:sonar 8.1版本必须在非root账号下启动
3、下载好Sonar放置目录下
mkdir -p /usr/sonar
unzip sonarqube-8.1.0.31237.zip /usr/sonar/
#授予相关目录权限
chown -R sonar:sonar /usr/sonar
4、配置环境变量
#修改profile文件
sudo vi /etc/profile
#在文件末尾增加变量:SONAR_HOME
export SONAR_HOME=/usr/sonar/sonarqube-8.1.0.31237
#使变量生效
source /etc/profile
#测试
echo $SONAR_HOME
5、配置Sonar的数据库连接信息
#修改配置文件
sudo vi $SONAR_HOME/conf/sonar.properties
添加:
sonar.jdbc.username=sonar
sonar.jdbc.password=输入上边设置的密码
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
6、启动Sonar
#切换到sonar账号
su sonar
#启动
sh $SONAR_HOME/bin/linux-x86-64/sonar.sh start
#启动完成会看到以下输出
Starting SonarQube...
Started SonarQube.
#如果未完成启动可以使用console命令查看启动过程中的问题
sh $SONAR_HOME/bin/linux-x86-64/sonar.sh console
注意:sonar支持的启动参数: console | start | stop | restart | status | dump

如果启动完成,但是依然不能访问,可以通过以下命令查看启动日志:
cat $SONAR_HOME/logs/web.log

访问:http://10.0.0.96:9000/
启动后SonarQube会进行初始化,比如:初始化数据库。初始化完成后将看到首页
《SonarQube部署及代码质量扫描入门教程》

安装完成后通过admin admin登陆即可,安装中文插件。

《SonarQube部署及代码质量扫描入门教程》
点赞