文章目录
前言
一、安装JDK11
二、安装PostgreSQL12
1.安装
2.创建SonarQube数据库
三、安装SonarQube
1.下载SonarQube8.9.7LTS
2.解压
3.配置SonarQube文件
四、修改Liunx文件限制数
五、启动SonarQube
六、访问
从7.9版本开始SonarQube不再支持Mysql,网上的教程大多数都是基于mysql,现在已经不适用了!SonarQube7.9开始数据库只支持PostgreSQL、Oracle和MS SQLSERVER,本篇文档基于PostgreSQL12。
Sonarqube8.9Java环境需要JDK11版本!
注:SonarQube为静态代码扫描工具,只能扫描代码中存在的问题,而不会扫描代码如何执行业务逻辑!
# 查询已安装的JDK
rpm -qa | grep openjdk
java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
java-1.8.0-openjdk-headless-1.8.0.312.b07-1.el7_9.x86_64
# 卸载旧版本的JDK
rpm -e java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
rpm -e java-1.8.0-openjdk-headless-1.8.0.312.b07-1.el7_9.x86_64
# 安装openjdk11,需要EPEL源
yum install -y epel-release
# 安装openjdk11并验证
yum install java-11-openjdk.x86_64
java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)
# 下载、解压
wget http://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.bz2
tar xvf postgresql-12.2.tar.bz2
# 编译安装
cd postgresql-12.2/
# 安装至/opt/pgsql12
./configure --prefix=/opt/pgsql12
make world
make install-world
# 新增pgsql用户,添加密码
adduser postgres
passwd postgres
# 创建数据目录并授权
mkdir -p /home/postgres/data
chown -R postgres:postgres /home/postgres/data
# 切换postgres用户操作
su - postgres
# 初始化数据库
/opt/pgsql12/bin/initdb -D /home/postgres/data
# 启动数据库
/opt/pgsql12/bin/pg_ctl -D /home/postgres/data -l logfile start
创建SonarQube数据库时,字符集一定要选择UTF8,在postgres用户下执行/opt/pgsql12/bin/psql:
# 为超级用户postgres配置一个密码
\password postgres;
# 创建sonar数据库账户和密码
CREATE USER sonar WITH PASSWORD 'sonar123456';
CREATE DATABASE sonardb WITH OWNER sonar ENCODING UTF8;
GRANT ALL PRIVILEGES ON DATABASE sonardb TO sonar;
推荐下载LTS版本,相对于其他版本更加稳定,但是功能更新比较慢,SonarQube LTS版本一年更新一次,非LTS版本2月更新一次 https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.7.52159.zip
unzip sonarqube-8.9.7.52159.zip
需要修改/opt/sonarqube-8.9.7/conf/sonar.properties,这个文件主要配置SonarQube数据库连接,网页配置和JVM虚拟机配置. vim /opt/sonarqube-8.9.7/conf/sonar.properties,找到18~19两行,修改连接数据库用户名和密码(可是使用set nu在vim里设置行号),修改之前使用cp /opt/sonarqube-8.9.7/conf/sonar.properties /opt/sonarqube-8.9.7/conf/sonar.properties.bak备份一下配置文件
sonar.jdbc.username=username
sonar.jdbc.password=password
# 修改sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
sonar.jdbc.url=jdbc:postgresql://localhost/sonardb
# 找到101行,配置SonarQube登录地址,去掉前面的注释,改为该服务器的IP地址
sonar.web.host=127.0.0.1
# 找到107行,更改SonarQube的端口,默认为9000
#去掉前面的注释,改为自定义即可
sonar.web.port=9000
# 默认位置为安装目录下,去掉前面的注释,改为如下目录
sonar.path.logs=/var/log/sonarqube/
#更改LOG目录属主,不然LOG4J会报错
chown -R sonarqube:sonarqube /var/log/sonarqube/
#默认为SonarQube安装路径下,建议安装在其他路径
sonar.path.data=/data/sonarqube/data
sonar.path.temp=/data/sonarqube/temp
useradd sonarqube
passwd sonarqube
vm.max_map_count:使用sysctl vm.max_map_count命令查看,默认为65530,官方建议大于等于524288,如果大于此值不用修改
fs.file-max:sysctl fs.file-max查看,官方建议大于等于131072,如果大于此值不用修改
ulimit -n:sonarqube打开文件数,官方建议大于等于131072,如果大于此值不用修改
ulimit -usonarqube大开线程数,官方建议大于等于8192,如果大于此值不用修改
#修改vm.max_map_count
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
#修改fs.file-max
echo "fs.file-max = 6553560" >> /etc/sysctl.conf
sysctl -p
#修改ulimit
vim /etc/security/limits.d/99-sonarqube.conf
# 增加sonarqube用户大开文件数
sonarqube - nofile 131072
sonarqube - nproc 8192
/opt/sonarqube-8.9.7/bin/linux-x86-64/sonar.sh start
打开网址:http://***:9000/,默认用户名密码admin/admin