Linux安装与部署SonarQube

小柒博客 SonarQube评论84.4K4字数 2900阅读9分40秒阅读模式

一、前言

随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是bug的增多和代码债务的堆积。因此,代码review便日益提上了日程。当然人工review的效率还是相当低下的,于是我们采用了自动化代码review的工具,便是今天的主角:SonarQube。

二、SonarQube简介

SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:

  • SonarQube集成gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
  • SonarQube集成jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。

官方网站:https://www.sonarqube.org/

SonarQube 支持的数据库有:PostgreSQL,Microsoft SQL Server,Oracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用Mysql可能会遇到很多坑。当然有的朋友想用Mysql数据库,那么可以选择安装7.7以下版本(包括7.7)。

SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES。

因为我用到了Mysql数据库,综合软硬件说明我选择了7.7版本的SonarQube进行下载安装。

本文下载的版本是Sonarqube-7.7

下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip(187.71MB)

SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。

1、下载SonarQube安装包
[root@Zabbix ~]# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip

2、解压SonarQube安装包

[root@Zabbix ~]# unzip sonarqube-7.7.zip

[root@Zabbix ~]# mv sonarqube-7.7 /usr/local/sonarqube

  • bin目录存放了各个环境的启动脚本
  • conf目录存放着sonarqube的配置文件
  • logs目录存放着启动和运行时的日志文件

3、配置SonarQube

# 我们首先需要通过配置文件修改sonarqube的Mysql连接字符串等信息,打开conf目录的sonar.properties

[root@Zabbix ~]# vim /usr/local/sonarqube/conf/sonar.properties

sonarqube web 默认端口号为9000如果想修改成其他端口可以通过下面这个设置修改其他端口号。

sonar.jdbc.url=jdbc:mysql://172.168.1.14:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=false
sonar.jdbc.username=sonarqube
sonar.jdbc.password=123456

wrapper.conf这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等

注:Mysql版本需大于或等于5.6且小于8.0

4、创建数据库及授权

mysql> create database sonarqube;

mysql> grant all on sonarqube.* to sonarqube@'%' identified by '123456';

mysql> flush privileges;

5、启动SonarQube

启动需要授权给一个非root的用户,sonarqube及其es等软件禁止root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。

然后我们找到对应平台的脚本,我的系统是64位的linux,进入linux-x86-64目录

# 授权

[root@Zabbix ~]# chown -R admin.admin /usr/local/sonarqube

# 启动

[root@Zabbix ~]# su - admin

[admin@Zabbix ~]$ /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start

# 查询端口

[admin@Zabbix ~]$ netstat -lntup

# 启动之后,我们浏览器访问对应服务器IP地址的9000端口(防火墙要提前放行9000端口)

如果没有成功,那么就在logs目录查看启动日志。一般有几种:

1)es.log                            # ES或Mysql等数据库连接报错,一般是Mysql的连接字符串账号密码错误或者sonar账号权限不够;

2)es.log                             # 数据库初始化失败MySQL sonar账户权限不足

3)sonar.log                       # sonar服务的启动日志

4)web.log                         # sonarqube web的启动日志

6、访问SonarQube

Linux安装与部署SonarQube

# 默认账号密码admin

# 登录后界面

7、中文汉化

# 如果看不惯英文界面,那么就先装个中文插件吧。

注:这个中文插件我是没安装成功,我们可通过访问插件地址下载对应版本(版本不兼容会启动失败)

Github地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases

# 找到对应版本

下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.27/sonar-l10n-zh-plugin-1.27.jar

把下载好的插件上传到plugins目录下,我这里的地址是/usr/local/sonarqube/extensions/plugins

8、重启SonarQube

[admin@Zabbix plugins]$ /usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart

9、访问SonarQube

到此为止,SonarQube的安装与配置便告一段落了,如果有任何问题欢迎留言区讨论。

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
Wechat
微信扫一扫,加我!
weinxin
微信公众号
微信扫一扫,关注我!
weinxin
小柒博客
  • 本文由 小柒博客 发表于 2020年7月21日16:19:47
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.com/7262.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证