linux sonar 安装教程,SonarQube系列一、Linux安装与部署

2023-05-16

原标题:SonarQube系列一、Linux安装与部署

来源:https://www.cnblogs.com/7tiny/p/11269774.html

【前言】

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

本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下:

SonarQube系列一、Linux安装与部署

SonarQube系列二、分析dotnet core/C#代码

SonarQube系列三、如何集成jenkins实现分析自动化【SonarQube简介】

2bf63d94a09eb0cf36337f08c0c957ef.png

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

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

SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

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

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

【SonarQube安装】

打开官网(上述官网地址),便可以很容易看到官方文档的菜单,安装步骤在官网很清楚了,我们参考文档进行安装,这里记录整个安装的过程以便帮助一些看文档迷惑的学者。

官方文档地址:https://docs.sonarqube.org/latest/

5d8513b08e9842085089729bad8d9435.png

1.首先别忙着下载

左侧有下拉框可以选择sonarqube的各个版本,我们可以选择切换不同的版本以查看不同时期的文档

53b4d4c58b90c1e39b37c17ed6982260.png

我们首先打开 Requirements ,查看当前版本的软硬件支持。

SonarQube 依赖于Java 环境,也就是需要安装Jre,在这里写了支持的版本:

ced50116611e198f8780d7e8712c6da5.png

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

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

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

2.下载 SonarQube

同样在左侧菜单找到 Setup and Upgrade 选项,打开以后按步骤找到 Download 链接,下载对应版本的安装包。

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

下载完成后,我们把安装包 sonarqube-7.6.zip放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压

unzipsonarqube- 7.6. zip

进入文件夹,我们了解几个重要的目录

aaa17facc9bb7be9c463034acb69a374.png

bin目录存放了各个环境的启动脚本

conf目录存放着sonarqube的配置文件

logs目录存放着启动和运行时的日志文件3.配置 SonarQube

关于jdk的安装这里就不多说了,我们直接进入sonarqube 的配置。

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

af3ce2150658402d197818ecd97925d1.png

我们只需要修改mysql部分就ok了,其他不用过多设置

7d97adfa71584c8753d5677dd592b23a.png

#----- DEPRECATED

#----- MySQL >= 5.6&& < 8.0

# Support of MySQL is dropped inData Center Editions and deprecated inall other editions

# Only InnoDB storage engine is supported (not myISAM).

# Only the bundled driver is supported. It can not be changed.

sonar.jdbc.url=jdbc:mysql: //localhost:39901/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=false

sonar.jdbc.username= sonarqube

sonar.jdbc.password=xxxxx

这里的配置是按照官方文档的介绍,在mysql添加了一个 sonarqube 的用户,并且创建了一个数据库叫 sonarqube ,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。

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

9ca2666f8b98af167dbee12cc1a40f1e.png

wrapper.conf这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等,可以关注下自己的 java 命令路径,其他不用太过关注。

4.SonarQube 启动

打开 sonarqube 的下载目录的bin目录,里面列举了各个平台的启动脚本

a4f81f4684df42f73f690936ffebba7a.png

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

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

a2ae3c7965c839a1798cafc173407492.png

启动sonar,执行 sonar.sh 脚本,并添加 start 参数

./sonar. shstart

如果不添加参数,会出现如下提示,是因为该脚本有必要的参数,包含了sonar服务的启动/停止/重启/dump等操作,可以根据使用场景提供不同的参数。

3934bacd0cbeef5ab49d1cc25ab5675b.png

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

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

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

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

sonar.log sonar服务的启动日志

web.log sonarqube web的启动日志

如果一切顺利的话,就会进入登陆页面,账号密码都是 admin。

551f3986d80c93380318f7cea9882d64.png

【SonarQube插件】

关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧。

在顶部的菜单栏,配置里面,按下图步骤,在下面插件搜索栏输入chinese,即可搜到中文插件,然后点安装。

等待安装完毕,提示重启sonar后,便自动切换到了中文界面。

6b1466a8199295ccfecb35a0c6a3c52c.png

-END-

看完本文的你是否有所收获?

请转发给更多人关注

【猿学圈】

提升IT技能~

长按关注,谢谢转发

学海无涯,别担心,有我陪着你~

点个赞,让我在心里记住你☟返回搜狐,查看更多

责任编辑:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux sonar 安装教程,SonarQube系列一、Linux安装与部署 的相关文章

随机推荐