一、安装前准备
(1)https://docs.sonarqube.org/7.9/requirements/requirements/查看SonarQube当前版本的软硬件支持情况
(2)SonarQube 依赖于Java 环境,需要安装相对应版本的JDK
(3)SonarQube从7.7以上开始不支持MySql数据库(7.7及以下版本支持)
二、开始安装
JAVA环境安装:
JDK11 下载地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
其他下载地址:https://pan.baidu.com/s/1dzyHZHSAs1NFsjhpTUArUw
- 2、解压缩JDK的tar包
tar -zxvf JDK
- 1
mv jdk-13.0.2 /usr/local/install
- 1
vim /etc/profile
export JAVA_HOME=/usr/local/install/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
- 1
- 2
- 3
source /etc/profile
- 1
java -version
- 1
Postgresql安装9.5(Ubuntu)
$ apt -y install postgresql postgresql-contrib
#安装完成后,默认会增加一个postgres用户,需要对该
#用户设置密码,并利用这个用户创建新的数据库用户提供给sonar使用
#为postgres用户设置密码
passwd postgres
# 切换到postgres用户
su - postgres
# 新建postgres数据库用户 sonar
createuser sonar # 创建用户
# 登录数据库
psql
# 创建数据库sonar
CREATE DATABASE sonar WITH ENCODING 'UTF8' OWNER sonar TEMPLATE=template0;
alter user sonar with password 'sonar'; #设置sonar用户密码(否则会导致连不上数据库)
alter role sonar createdb;alter role sonar superuser;alter role sonar createrole; #给sonar授权
alter database sonar owner to sonar; #更改sonar数据库拥有者(这一步是必须的,否则会sonarqube会连接失败)
# 退出数据库连接
\q
SonarQube安装8.4(Ubuntu)
将下载的sonarqube-8.4.1.35646.zip包解压到目录下,并将sonarqube目录权限赋予给启动用户:
chown -R sonar:sonar sonarqube
- 1
注意:
- 不要解压在以数字开头的目录里
- 不要使用root运行sonar,创建一个用户只来启动sonar服务
sonarqube-8.4.1.35646/conf/sonar.properties
数据库账号密码:
数据库连接地址:去掉qube?currentSchema=my_schema部分。可以尝试localhost不起作用再修改127.0.0.1
webIP(本机IP)、Port
ES存储路径:
创建目录并赋予权限给sonar用户和用户组
mkdir -p /data/sonarqube/data
mkdir -p /data/sonarqube/temp
chown -R sonar:sonar /data/
su - sonar 切换用户
./sonar.sh start (start/restart/stop/status)
注意:
- 不能直接su sonar切换用户,JDK会没有权限,必须su - sonar
三、错误排查
1、启动成功后web端不能访问
(1)首先查看sonarqube是否启动后又停止,多次查看sonarqube状态
(2)确定启动,查看端口是否放开、或被占用
telnet IP Port
(3)查看sonar.log是否存在错误日志
2、ES、sonarqube运行正常的
3、[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]错误
查看本机的内核参数
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
- 1
- 2
- 3
动态修改值(重启后修改的值还原):
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
永久设置,修改/etc/sysctl.d/99-sonarqube.conf(或/etc/sysctl.conf文件):
vi /etc/sysctl.conf
vm.max_map_count=262144
fs.file-max=65536
在/etc/profile文件末尾添加ulimit -n 65536
vi /etc/profile
ulimit -n 65536 #保存后运行#source /etc/profile 使其生效
source /etc/profile
4、JVM问题
猜测是由于su sonar方式切换用户导致没有JDK权限
5、web中的日志,数据库问题
(1)数据库连接地址由localhost修改成127.0.0.1
(2)检查用户名密码
(3)检查数据库设置(是否创建库、授权等)
psql #进入命令行
\l #查看库情况
\du #查看用户
四、Sonar-Scanner扫描器安装及使用方法(用于扫描项目)
官方下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
#丢到/usr/local/下面解压
unzip sonar-scanner-cli-4.2.0.1873-linux.zip
cd sonar-scanner-4.2.0.1873-linux/
vim conf/sonar-scanner.propertie #改下配置
修改配置:
保存退出后,创建软连接,将sonar-scanner改为全局即可使用(修改成自己的目录):
ln -s /usr/local/sonar-scanner-4.2.0.1873-linux/bin/sonar-scanner /usr/bin/sonar-scanner
- 1
重新启动sonarqube。
访问web页面(默认本机IP:port/about):
账户密码:admin/admin
安装中文插件:
参考文章:https://blog.51cto.com/14268033/2475706
https://www.jianshu.com/p/398cd10986ba
https://blog.csdn.net/shm19990131/article/details/107527755