centos sonar 安装(centos7安装卡在安装源)
CentOS7下SonarQube安装配置
注意:软件运行环境是整个系统公共使用的,建议采用root用户进行操作。
1、下载地址
sonarqube.org/downloads...
2、新建 sonar用户组
因为 SonarQube里使用的 elasticsearch不允许使用 root账号启动,执行命令:新建 sonar用户组:
# groupadd sonar
新建 sonar用户并增加到 sonar用户组:
#useradd-g sonar sonar
3、解压安装
创建 sonar安装目录,解压安装,执行命令:
# mkdir-p/home/sonar
# cp sonarqube-7.6.zip/home/sonar/
# cd/home/sonar/
# unzip sonarqube-7.6.zip
# rm-rf sonarqube-7.6.zip
4、修改配置
修改配置文件,执行命令:
# vi sonarqube-7.6/conf/sonar.properties
修改以下内容:
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=urf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
sonar.web.port=8004
保存退出,如下图所示:
5、目录授权
修改/home/sonar目录及子目录所有权为 sonar用户和用户组所有,执行命令:
# cd/home/
# chown-R sonar:sonar sonar
如下图所示:
6、开启访问端口
(1)查询端口号8004是否开启,执行命令:
# firewall-cmd--query-port=8004/tcp
(2)开启8004端口号,如下图所示:
# firewall-cmd--zone=public--add-port=8004/tcp–permanent
命令含义说明:
--zone#作用域
--add-port=8004/tcp#添加端口,格式为:端口/通讯协议
--permanent#永久生效,没有此参数重启后失效
(3)重启防护墙,使端口配置生效,执行命令:
# firewall-cmd–reload
7、启动sonarqube
(1)启动 sonarqube,切换到 sonar用户,执行命令:
# su sonar#/home/sonar/sonarqube-7.6/bin/linux-x86-64/sonar.sh start
如下图所示:
(2)浏览器中打开: 192.168.91.102:8004
8、设置开机启动
执行命令:
# vi/etc/rc.local
编辑/etc/rc.local文件,加入:
# sonarqube su- sonar-c'/home/sonar/sonarqube-7.6/bin/linux-x86-64/sonar.sh start'
保存退出,如下图所示:
执行授权命令:
# chmod+x/etc/rc.d/rc.local
SonarQute安装与多分支扫描分析插件安装
在本文中,我们将探讨SonarQube的安装过程以及如何为多分支进行扫描分析。SonarQube是一个强大的代码质量管理工具,它提供了静态检查、度量和代码审查等功能,对开源项目维护尤其重要。
首先,访问SonarQube官网获取详细的安装指南。如果你的环境是CentOS 7加上Docker,建议使用PostgreSQL作为数据库,但SonarQube支持多种数据库。创建SonarQube所需的文件夹时,官方推荐使用Docker volume来持久存储数据,但为了简单起见,这里我们没有采用这种方法。
接着,使用Docker拉取镜像,设置启动端口和DB连接,启动SonarQube。初次登录时,请务必更改默认密码。遇到启动问题,可以查看Docker日志排查常见原因。
接下来,我们演示如何使用SonarQube扫描一个SpringBoot项目,例如可以从GitHub下载示例项目。在SonarQube中创建项目,选择Maven本地扫描,生成的token用于触发扫描。
对于多分支扫描,SonarQube社区版原生功能有限,需要安装插件。可以从GitHub获取mc1arke的插件,注意选择与你SonarQube版本相匹配的版本。安装后,重启SonarQube,通过-Dsonar.branch.name参数指定不同分支进行扫描。
然而,你可能会遇到"Current edition does not support branch feature"的问题。解决方法包括重新启动SonarQube容器并更新环境变量,或者直接在容器内修改sonar.properties文件。尽管这种方法可能会带来一些挑战,但最终是可行的。
总的来说,通过这些步骤,你将学会如何安装SonarQube,以及如何配置它对多分支进行代码扫描分析。记得根据你的实际环境进行调整,以便顺利进行代码质量管理。
SonarQube实现自动化代码扫描
SonarQube官网地址:sonarqube.org/
SonarQube是用于实现自动化代码扫描的工具,安装时在Centos7环境上需注意内存至少3G,否则ES可能运行异常。
Centos7环境下的SonarScanner安装后,执行扫描可获得结果。
集成FindBugs插件于SonarQube中,有多种方式,其中一种是确保Java项目在调用SonarScanner进行扫描前已打包。配置FindBugs执行扫描,通过质量配置页面进行,可选择使用FindBugs Security Audit进行安全代码审计。不加载FindBugs插件时,可取消其规则设置。
SonarQube集成DependencyCheck插件与FindBugs一致,但在使用时需注意项目的编译情况,确保对jar包进行扫描。
对比SonarQube自带规则、DependencyCheck和FindBugs Security Audit,发现SonarQube自带规则对代码Bug检查效果最佳,而DependencyCheck与FindBugs Security Audit在代码安全性检查方面表现更优。
SonarQube可集成至CI&CD流程,如通过Gitlab-CI集成SonarScanner,需注意权限问题。
CI&CD中集成代码扫描时,考虑到依赖包扫描耗时,推荐在发布到测试或预生产环境时进行。定期更新漏洞库,选择在周末夜间执行,周期不超过7天,确保维护成本可控。代码扫描结果可直接通过构建关系映射通知安全或研发人员,初步筛查后,确认漏洞危害性,再提交至企业漏洞管理平台。
在项目管理中,将SonarQube项目属性设为私有,避免信息泄露。在使用SonarScanner时,需注意项目名称命名,避免特殊字符导致Gitlab-CI pipeline执行失败。可通过CI_COMMIT_REF_SLUG变量解决此类问题。
通过上述方法,可实现SonarQube在自动化代码扫描过程中的高效管理与优化,确保代码质量和安全性。