1 安装sonarqube
1.1 下载安装包
下载路径https://www.sonarqube.org/downloads/
选择长期支持的版本6.7.6
1.2 解压,修改配置文件
只需修改三个地方,配置数据库路径、用户名、密码。
需要提前在指定的数据库路径下新建相应的数据库,此处是sonar_linux。
1.3 启动
进入bin目录准备启动
这时如果直接执行./sonar.sh start,会出现莫名其妙的错误,即启动成功后进程消失。
查阅日志发现如下提示
1.4 注意事项
此处提示不能以root方式启动
新建一个用户和组
groupadd sonarqube
useradd sonarqube -g sonarqube -p sonarqube
chown -R sonarqube /sonarqube-6.7.6 //把sonar资源分配给用户sonarqube
chgrp -R sonarqube /sonarqube-6.7.6 //把sonar资源分配给组sonarqube
chown -R sonarqube /jdk1.8 //把jdk资源分配给用户sonarqube
chgrp -R sonarqube /jdk1.8 //把jdk资源分配给组sonarqube
后两步是指定把jdk安装路径授权给sonarqube用户
这时再执行./sonar.sh start,发现进程存在了
查看之前配置的数据库,发现启动过程中sonar自动创建了以下表结构,用于存储后续每次扫描的结果
如果这时还不能通过ip:9000访问sonarqube的web界面,考虑端口号9000没开放
防火墙开放端口
iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
1.5 汉化
成功访问,安装汉化包
./sonar.sh restart
重启,此时没有任何项目
2 方案一 安装sonar-scanner
2.1 下载安装包
下载路径https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
2.2 解压后,修改配置文件
解压后,修改配置文件sonar-scanner.properties,配置指定的web路径和编码
2.3 配置环境变量
将sonar-scanner配置到环境变量
vi /etc/profile
添加如下内容
export PATH="$PATH:/usr/local/sonar-scanner-3.3.0.1492-linux/bin"
source /etc/profile
配置后即可在任何地方运行sonar-scanner命令
2.4 新建sonar-project.properties
在项目工程目录下,新进一个配置文件sonar-project.properties
[[email protected] remotedutyweb]# more sonar-project.properties
sonar.projectKey=remotedutyweb 工程key
sonar.projectName=remotedutyweb 工程名
sonar.projectVersion=1.0
sonar.sources=src java文件目录
sonar.java.binaries=target/classes class文件目录
sonar.langure=java
sonar.sourceEncoding=UTF-8
2.5 执行sonar-scanner
在当前目录下执行sonar-scanner
稍等片刻看到如下提示则证明扫描成功
刷新web端查看项目,即可看到扫描后的漏洞和bug
参考:
https://www.cnblogs.com/huxinping8800/p/9718157.html
https://blog.csdn.net/csdnjquery163com/article/details/82968779
3 方案二 添加maven插件
若所在的服务器有安装maven,可通过配置maven配置文件,配置sonar的web地址来实现漏洞扫描。这种则无需使用方案一那种方式。
3.1 在settings.xml中添加sonar插件
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
3.2 在settings.xml中配置web路径
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
</properties>
</profile>
3.3 在项目路径下执行mvn sonar:sonar
4 方案三:终极方案,使用jenkins集成sonar
4.1 安装jenkins
直接官网下载war包用tomcat启动即可,此处不再赘述
4.2 jenkins安装sonar-scanner插件
系统管理->插件管理
点击安装即可
4.3 配置sonar server
系统管理->系统设置
上图中的server URL是启动的sonar web端地址
上图中的token则可到启动的sonar的web界面生成
4.4 配置全局工具
系统管理-> 全局工具设置
设置sonarQube Scanner,选中4.3步设置的sonar server
4.5 配置构建步骤
新建一个maven风格的项目,此处不赘述
进入该项目->配置
4.5.1 源码管理,配置git路径和用户名密码等
4.5.2 设置pre steps
选择图中圈中的选项
选择指定的jdk
设置Analysis properties
sonar.projectKey=smsweb 工程key
sonar.projectName=smsweb 工程名
sonar.projectVersion=1.0 版本
sonar.sources=src java代码路径
sonar.java.binaries=target/classes class路径
4.5.3 maven构建
这一步不是重点,略过
4.5.4 开始构建
下图可以看出,漏洞分析成功
4.5.5 查看漏洞
由于构建了太多次,虚拟机挂了,没效果图,效果图参考2.5小节那几个关于漏洞的界面截图。感兴趣者自行尝试。
参考:
教程https://www.ibm.com/developerworks/cn/devops/1612_qusm_jenkins/index.html
教程https://blog.csdn.net/mao_2110901055/article/details/80410568
token获取https://blog.csdn.net/wuxuehong0306/article/details/54585800