Linux安装与部署SonarQube

小辉博客
小辉博客
小辉博客
358
文章
3
评论
2020-07-2116:10:24 评论 1.7K 2807字阅读9分21秒

【前言】

随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是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.6版本的SonarQube进行下载安装。

本文下载的版本是Sonarqube-7.7

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

Linux安装与部署SonarQube

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

Linux安装与部署SonarQube

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 的日志文件目录等

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

Linux安装与部署SonarQube

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

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

  • es.log es或mysql等数据库连接报错,一般是Mysql的连接字符串账号密码错误或者sonar账号权限不够;
  • es.log 数据库初始化失败MySQL sonar账户权限不足
  • sonar.log sonar服务的启动日志
  • web.log sonarqube web的启动日志

6、访问SonarQube

Linux安装与部署SonarQube

# 默认账号密码admin

Linux安装与部署SonarQube

# 登录后界面

Linux安装与部署SonarQube

7、中文汉化

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

Linux安装与部署SonarQube

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

Linux安装与部署SonarQube

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

# 找到对应版本

Linux安装与部署SonarQube

下载地址: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

Linux安装与部署SonarQube

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

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
小辉博客
  • 本文由 发表于 2020-07-2116:10:24
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Jenkins+SonarQube进行代码质量检测 Jenkins

Jenkins+SonarQube进行代码质量检测

SonarQube 介绍 SonarQube 是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 ...
linux安装部署shadowsocks Linux

linux安装部署shadowsocks

Shadowsocks 简介 Shadowsocks(中文名称:影梭)是一个跨平台软件、基于Apache许可证的开放源代码软件,用于保护网络流量、加密数据传输。Shadowsocks使用Socks5...
匿名

发表评论

匿名网友 填写信息

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