文章目录
- 下载地址
- 前置条件
- 安装sonarqube
- 创建用户
- 解压
- 修改`sonar.properties`配置文件
- 启动sonarqube
- 开启防火墙端口
- 启动报错
- 访问SonarQube
- 安装汉化包
- 安装sonar-scanner
下载地址
社区稳定版本
版本依赖关系
Prerequisites and overview (sonarsource.com)
前置条件
-
JDK11安装
或者根据依赖关系,自己安装相应的jdk版本
-
安装Postgresql14
或者根据依赖关系,自己安装相应的postgresql版本
# 新建用户sonarqube,密码xxxxxx CREATE USER sonarqube WITH ENCRYPTED PASSWORD 'sonarqube'; # 创建数据库sonarqube_9_9并指定owner为sonarqube CREATE DATABASE sonarqube_9_9 WITH OWNER sonarqube; # 授权sonarqube用户在数据库sonarqube_9_9拥有所有权限 GRANT ALL PRIVILEGES ON DATABASE sonarqube_9_9 TO sonarqube;
安装sonarqube
创建用户
#创建用户sonar,因为sonarqube会用到ES,ES不能用root用户启动
useradd sonar
解压
#解压包
unzip sonarqube-9.9.4.87374.zip
#修改目录的属主属组
chown -R sonar:sonar sonarqube-9.9.4.87374/
修改sonar.properties
配置文件
#备份原始配置文件
cd sonarqube-9.9.4.87374/conf/
cp sonar.properties sonar.properties_bak
#postgresql连接配置
vim sonar.properties
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://xx.xx.xx.xx:5432/sonarqube_9_9
#端口配置
sonar.web.port=9000
启动sonarqube
sudo -u sonar /opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh start
开启防火墙端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload #修改后需要重新加载防火墙生效
# 显示success表示成功
# –zone=public表示作用域为公共的
# –add-port=9000/tcp添加tcp协议的端口端口号为9000
# –permanent永久生效,如果没有此参数,则只能维持当前 服 务生命周期内,重新启动后失效;
启动报错
可以查看/opt/sonarqube-9.9.4.87374/logs
下的sonar.log
和es.log
,如果这俩日志都没生成,那大概率是jdk的编译版本不对。需要升级jdk或者降级sonarqube。
2024.03.05 13:40:58 ERROR es[][o.e.b.Bootstrap] node validation exception
[2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2024.03.05 13:40:58 INFO es[][o.e.n.Node] stopping ...
2024.03.05 13:40:58 INFO es[][o.e.n.Node] stopped
2024.03.05 13:40:58 INFO es[][o.e.n.Node] closing ...
2024.03.05 13:40:58 INFO es[][o.e.n.Node] closed
这两个错误都是由系统限制引起的,以下是解决方案:
-
max file descriptors is too low:
-
这个错误表示 Elasticsearch 进程所允许的最大文件描述符数量太低了。您可以通过以下步骤增加文件描述符的限制:
编辑
/etc/security/limits.conf
文件:在文件末尾添加如下两行:* soft nofile 65535 * hard nofile 65535
-
-
max virtual memory areas vm.max_map_count is too low:
- 这个错误表示虚拟内存区域的数量限制太低了。您可以通过以下步骤增加最大虚拟内存区域数量:
- 临时修改值:执行命令
sudo sysctl -w vm.max_map_count=262144
- 永久修改值:编辑
/etc/sysctl.conf
文件,在末尾添加:vm.max_map_count=262144
,然后运行sudo sysctl -p
生效。
- 临时修改值:执行命令
- 这个错误表示虚拟内存区域的数量限制太低了。您可以通过以下步骤增加最大虚拟内存区域数量:
访问SonarQube
初始用户名密码:admin/admin
安装汉化包
下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases
# 将下载好的汉化包jar文件移动到插件目录下
/opt/sonarqube-9.9.4.87374/extensions/plugins
# 然后重启sonarqube服务
sudo -u sonar /opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh restart
安装sonar-scanner
用于扫描分析项目
# 不一定要和sonarqube装到一个系统下,在哪扫就装哪
# 下载地址
https://docs.sonarsource.com/sonarqube/9.9/analyzing-source-code/scanners/sonarscanner/
# 解压在 opt 目录
cd /opt
unzip sonar-scanner-cli-5.0.1.3006-linux.zip
# 修改配置文件
cd /opt/sonar-scanner-5.0.1.3006-linux/conf
# 先备份配置文件
cp sonar-scanner.properties sonar-scanner.properties.bak
# 再修改
vim sonar-scanner.properties
sonar.host.url=http://xx.xx.xx.xx:9000
sonar.sourceEncoding=UTF-8
# 在 /etc/profile 的末尾添加环境变量
vim /etc/profile
export SONAR_SCANNER_HOME=/opt/sonar-scanner-5.0.1.3006-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
# 环境变量立即生效
source /etc/profile
# 检查一下命令是否可用
sonar-scanner -v
[root@ps-cnrjkflc-01 conf]# sonar-scanner -v
INFO: Scanner configuration file: /opt/sonar-scanner-5.0.1.3006-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 5.0.1.3006
INFO: Java 17.0.7 Eclipse Adoptium (64-bit)
INFO: Linux 3.10.0-1160.el7.x86_64 amd64