Sonarqube DataCenter版本手动搭建完整流程

本文最后更新于:2024年10月11日 晚上

1、Sonarqube介绍

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量,Datacenter版本为最高版本。其支持C、C++、Java、kotlin、Scala、python、JavaScrip等几乎所有编程语言的代码质量管理与检测。支持将代码扫描集成到现有的工作流,以便在项目分支和拉取请求之间进行连续的代码检查。

sonarqube分为四个版本:社区版、开发版、企业版、数据中心版,各版本之间差异如下

image-20240413021201801

官网:https://www.sonarsource.com/products/sonarqube/

Sonar分为两部分:

  • 第一部分为服务端,为Sonarqube为代码指令管理平台
  • 第二部分为客户端,为sonar-scanner扫描器

由于是安装Data Center版本,不支持docker安装,后续操作基于本地安装包搭建完整的sonarqube服务平台过程做记录

2、环境配置要求

官方配置要求:https://docs.sonarsource.com/sonarqube/latest/setup-and-upgrade/installation-requirements/server-host/

搭建环境配置参考:

类型 配置
OS系统 Ubuntu 24.1 LTS
RAM 8G(要求>=4G)
CPU 2 cores(要求>=2 cores)
硬盘 20G(要求>=30G)
JAVA version 17(要求至少为JAVA 11,不支持Java8)
PostgreSQL version 16(要求>=11)

其中硬盘自行决定,这里20GB仅作为短时间验证使用,存储空间按照官方要求来。Java配置过程参考:https://blog.csdn.net/weixin_62636014/article/details/137872596

3、搭建sonarqube流程

3.1、获取Sonarqube Datacenter安装包

下载安装包:https://pan.baidu.com/s/1TnwrJvdts7rrSr3vPkHiaA 提取码:9y4b

上传至Linux服务器路径,这里我上传到/usr/local/etc/sonarqube

将压缩包进行解压:

1
unzip sonarqube-datacenter-10.4.0.87286.zip -d /usr/local/etc/sonarqube

解压后如下:

image-20240919195926875

后续所有的操作均基于此路径。

3.2、创建非管理员用户

注意: 由于elastic search不支持root用户启动,需要创建单独的非root用户来启动sonar。

1)创建用户sonar

1
2
# 新增用户sonar,根据提示完成密码配置
sudo adduser sonar

修改账户密码:

1
sudo passwd sonar

2)将sonar用户添加sudo管理特权

执行visudo打开配置文件,添加sonar用户配置:

1
sonar   ALL=(ALL:ALL) ALL

添加到下面User privilege specification位置:

image-20240919200350800

添加完成后,键入Ctrl+O写入内容,出现弹窗时点击enter完成写入:

image-20240919200604937

image-20240919200623177

写入完成后键入Ctrl+X离开文本编辑页。

检查修改是否完成:

1
cat /etc/sudoers |grep "sonar"

正常返回如下:

image-20240919200932493

3)切换到sonar用户

1
su - sonar

3.3、启动sonarqube

使用sonar用户启动sonarqube:

1
2
3
# sonar用户执行
sh /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/bin/linux-x86-64/sonar.sh start
sh /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/bin/linux-x86-64/sonar.sh start

image-20240918102303902

注意: 当不小心以root用户启动sonarqube时,可删除路径./temp路径下的所有文件、SonarQube.pid、es.log、sonar.log文件再重新执行启动指令即可。原因为这些文件的权限归属到root非sonar用户。

运行日志查看路径:

1
/usr/local/etc/sonarqube/sonarqube-10.4.0.87286/logs

启动过程可查看sonar运行日志tail -f /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/logs/sonar.log,出现下面两串关键字系统可正常操作:

1
2
2024.09.18 16:48:22 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2024.09.18 16:48:22 INFO app[][o.s.a.SchedulerImpl] SonarQube is operational

进入sonarqube主页:http://localhost:9000/sessions/new?return_to=%2F

image-20240914190131330

默认账户和密码:admin/admin,登录后更新密码即可进入到主页。

4、配置PostgreSQL数据库

Tips:这里默认已经安装完成PostgreSQL数据库的安装,具体详情可参考《Ubuntu手动安装及配置PostgreSQL》。

进入sonar配置文件修改数据库配置:

1
/usr/local/etc/sonarqube/sonarqube-10.4.0.87286/conf/sonar.properties

根据数据库类型,修改对应配置项:

image-20240918110431430

这里我选择的是PostgreSQL,在本地已有PostgreSQL数据库后修改如下:

image-20240918160438523

重启sonarqube服务:

1
sh /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/bin/linux-x86-64/sonar.sh restart

注意:在配置PostgreSQL之前,需要确保能正常进行远程连接,否则elastic search会启动失败报错(143错误)。

5、破解流程

下载破解agent jar包,或在3.1节中将百度云的jar包保存下来:

image-20240918144545988

上传SonarQubeAgent-1.2-SNAPSHOT.jar到sonarqube安装目录,这里是/usr/local/etc/sonarqube

修改配置文件:

1
vim /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/conf/sonar.properties

加入下面内容:

1
2
3
# 注意:路径需替换为本地实际jar所在的位置
sonar.web.javaOpts=-javaagent:/usr/local/etc/sonarqube/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx1G -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-javaagent:/usr/local/etc/sonarqube/SonarQubeAgent-1.2-SNAPSHOT.jar -Xmx2G -Xms128m -XX:+HeapDumpOnOutOfMemoryError

image-20240918145311394

重启sonarqube服务:

1
sh /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/bin/linux-x86-64/sonar.sh restart

image-20240918145407602

登录后进入到许可证页面,添加授权:http://localhost:9000/admin/extension/license/app

image-20240918153953792

将授权码信息通过BASE64算法加密,之后将加密后的内容后填入license框中:https://tool.oschina.net/encrypt?type=3

  • 授权码信息,根据需要选择其中任意一个:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# datacenter版
Company=Unknown
Digest=NotRequired
Edition=Datacenter
EditionLabel=Datacenter
Expiration=2099-01-01
MaxLoc=9223372036854775806
Plugins=abap,cpp,plsql,security,sonarapex,swift,tsql,vbnet,cobol,pli,rpg,vb
Features=*
ServerId=*
Support=false
Type=ny0c
# Enterprice版
Company=Unknown
Digest=NotRequired
Edition=Enterprise
EditionLabel=Enterprise
Expiration=2099-01-01
MaxLoc=9223372036854775806
Plugins=abap,cpp,plsql,security,sonarapex,swift,tsql,vbnet,cobol,pli,rpg,vb
Features=*
ServerId=*
Support=false
Type=ny0c
# Develop
Company=Unknown
Digest=NotRequired
Edition=Developer
EditionLabel=Developer
Expiration=2099-01-01
MaxLoc=9223372036854775806
Plugins=abap,cpp,plsql,security,sonarapex,swift,tsql,vbnet,cobol,pli,rpg,vb
Features=*
ServerId=*
Support=false
Type=ny0c

之后就可以正常的使用了:

image-20240918154130450

6、中文插件安装

插件官方库:https://github.com/xuhuisheng/sonar-l10n-zh

根据sonarqube下载对应的版本,我这里安装的为sonarqube10.4版本,插件也下载对应的版本:

image-20240918154314348

进入release界面:

image-20240918154351545

将下好的插件,放入到插件路径:

1
2
# /usr/local/etc/sonarqube为安装路径
/usr/local/etc/sonarqube/sonarqube-10.4.0.87286/extensions/plugins

image-20240918154837656

之后,重启sonarqube即可生效:

1
sh /usr/local/etc/sonarqube/sonarqube-10.4.0.87286/bin/linux-x86-64/sonar.sh restart

之后重新进入页面即可显示中文样式:

image-20240918155114443

至此,大功告成~

参考:

https://www.cnblogs.com/anliven/p/11986480.html

https://www.813972.xyz/p/%E5%9C%A8rocky-linux-9%E4%B8%8A%E5%AE%89%E8%A3%85sonarqude/

https://dashenxian.github.io/post/SonarQube%E7%A0%B4%E8%A7%A3


Sonarqube DataCenter版本手动搭建完整流程
http://www.codestar.top/2024/10/10/Linux/Sonarqube-DataCenter版本手动搭建完整流程/
作者
mini小新
发布于
2024年10月10日
更新于
2024年10月11日
许可协议