一、必要环境
注意:需要Jdk11、PostgreSQL数据库支持,同时必须确保最低环境要求
下载地址:https://download.csdn.net/download/m0_37048012/26451967
官网下载地址:https://www.sonarqube.org/downloads/
SonarQube汉化包:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-8.9
基础要求:https://docs.sonarqube.org/8.9/requirements/requirements/
二、安装JDK 11
OpenJDK 11:https://blog.csdn.net/m0_37048012/article/details/120519348
三、安装PostgreSQL 12
PostgreSQL 12:https://blog.csdn.net/m0_37048012/article/details/120554071
四、配置基础环境
4.1 添加sonarqube系统用户
# 创建用户组
groupadd sonarqube
# 创建用户
useradd sonarqube -g sonarqube
# 设置密码
passwd sonarqube //设置2次同样的密码
4.2 修改limits.conf文件
您可以使用以下命令查看这些值:
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u
如果不满足要求,则设置limits.conf文件和sysctl.conf文件。
# 修改limits.conf文件
vim /etc/security/limits.conf
# 插入内容
sonarqube soft nofile 131072
sonarqube hard nofile 131072
sonarqube soft nproc 8192
sonarqube hard nproc 8192
4.3 修改sysctl.conf文件
# 修改sysctl.conf文件
vim /etc/sysctl.conf
# 插入内容
vm.max_map_count = 524288
fs.file-max = 131072
# 输入命令:sysctl -p,使/etc/sysctl.conf配置文件立即生效。
sysctl -p
4.4 创建sonarqube数据库
# 切换用户,执行后提示符会变为'-bash-4.2$'
su - postgres
# 登录数据库,执行后提示符变为 'postgres=#'
psql
# 创建用户和密码
create user sonar with password 'sonar';
# 创建数据库指定所属者
create database sonarqube owner sonar encoding='UTF8';
# 将数据库得权限,全部赋给某个用户
grant all on database sonarqube to sonar;
# 退出数据库
\q
# 备注其他:列出所有库\l 列出所有用户\du 列出库下所有表\d
# 登出
exit
4.5 配置防火墙
# 查询9000端口是否开放
firewall-cmd --query-port=9000/tcp
# 开放9000端口(9000为SonarQube端口)
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看防火墙是否放行9000端口
firewall-cmd --zone=public --list-ports
五、安装SonarQube
5.1 上传安装包和汉化包
# 进入sonarqube目录
cd /home/sonarqube/
5.2 解压安装包
如果unzip报错,请先执行安装【yum -y install unzip】命令。
unzip sonarqube-8.9.2.46101.zip
5.3 移动汉化包,即可完成汉化
mv sonar-l10n-zh-plugin-8.9.jar /home/sonarqube/sonarqube-8.9.2.46101/extensions/plugins
5.4 创建持久数据文件和临时文件的路径
# 创建文件夹
mkdir -p /var/sonarqube/data
mkdir -p /var/sonarqube/temp
# 授权
chown -R sonarqube:sonarqube /var/sonarqube/data
chown -R sonarqube:sonarqube /var/sonarqube/temp
5.5 修改sonar.properties核心配置文件
# 修改sonar.properties
vim /home/sonarqube/sonarqube-8.9.2.46101/conf/sonar.properties
# 修改内容如下:
# User credentials.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# PostgreSQL 9.3 or greater
sonar.jdbc.url=jdbc:postgresql://192.168.1.110:5432/sonarqube
# WEB SERVER
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=192.168.1.110
sonar.web.context=/sonarqube
sonar.web.port=9000
# OTHERS
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
5.6 修改wrapper.conf核心配置文件
可以通过【which java】命令,查找java安装路径
# 修改sonar.properties
vim /home/sonarqube/sonarqube-8.9.2.46101/conf/wrapper.conf
# 修改内容如下:
wrapper.java.command=/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin/java
5.7 切换sonarqube用户启动程序
# 授权
chown -R sonarqube:sonarqube /home/sonarqube/
# 切换sonarqube用户
su - sonarqube
cd /home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64
# 启动sonarqube程序
./sonar.sh start
# 其他命令
Usage: ./sonar.sh { console | start | stop | force-stop | restart | status | dump }
5.8 查看日志是否启动成功
cd /home/sonarqube/sonarqube-8.9.2.46101/logs
# 查看sonar日志
tail -1000f sonar.20210930.log
# 查看web日志
tail -1000f web.log
# 查看es日志
tail -1000f es.log
5.9 访问
地址:http://192.168.1.110:9000/sonarqube
账号:admin
密码:admin
六、开机启动
6.1 编写开机自启动脚本
# 创建开机自启动调用文件
vim /etc/systemd/system/sonarqube.service
# 添加如下内容:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64/sonar.sh start
ExecStop=/home/sonarqube/sonarqube-8.9.2.46101/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
6.2 设置开机启动
# 加入开机启动
systemctl enable sonarqube.service
# 重启测试
reboot
七、常用命令
systemctl start sonarqube.service //启动
systemctl stop sonarqube.service //关闭
systemctl restart sonarqube.service //重启
systemctl status sonarqube.service //查看状态