目录
0.先决条件和概述
Prerequisites and Overview | SonarQube Docshttps://docs.sonarqube.org/latest/requirements/requirements/SonarQube Server 需要JAVA11
SonarQube Scanner 支持JAVA11、JAVA17
数据库支持Postgresql、SQL Server、Oracle
如果您在 Linux 上运行,则必须确保:
- vm.max_map_count大于或等于 524288
- fs.file-max大于或等于 131072
- 运行 SonarQube 的用户可以打开至少 131072 个文件描述符
- 运行 SonarQube 的用户至少可以打开 8192 个线程
1.安装jdk11和postgresql-13
#安装jdk11
yum install java-11-openjdk java-11-openjdk-devel
#安装postgresql-13
#官网获取rpm安装包,直接yum安装
yum install -y postgresql13-libs-13.0-1PGDG.rhel7.x86_64.rpm #客户端依赖
yum install -y postgresql13-13.0-1PGDG.rhel7.x86_64.rpm #客户端
yum install -y postgresql13-server-13.0-1PGDG.rhel7.x86_64.rpm #服务端
#安装完会自动创建postgres用户
各平台yum安装步骤
PostgreSQL: Downloadshttps://www.postgresql.org/download/rpm下载地址
RPM Chart - PostgreSQL YUM Repositoryhttps://yum.postgresql.org/rpmchart/
2.初始化postgresql(修改数据目录)
yum安装完,默认的pgsql-13的数据目录在/var/lib/pgsql/13/data/。除非/var目录可用空间很大,否则需要修改数据目录。
#创建数据目录&修改属主属组
mkdir -p /data/postgresql-13.0/
chown postgres: -R /data/postgresql-13.0/
#初始化pgsql(指定数据目录)
sudo -u postgres /usr/pgsql-13/bin/initdb --encoding=UTF-8 --username=postgres --pgdata=/data/postgresql-13.0/data
#--encoding 字符集
#--username 启动用户
#--pgdata 数据目录(数据目录如已存在会报错)
#记录配置文件路径
vim /data/postgresql-13.0/data/postgresql.conf #修改 listen_addresses = '*' ,postgresql启动参数。
# /data/postgresql-13.0/data/pg_hba.conf #定义哪些服务器、可以用什么样的方式,访问postgresql。(如下,允许所有库被远程连接,需要账密验证)
# host all all 0.0.0.0/0 md5
#修改service文件(修改数据目录)
vim /usr/lib/systemd/system/postgresql-13.service #修改后:Environment=PGDATA=/data/postgresql-13.0/data/
systemctl daemon-reload
#启动postgresql-13
systemctl enable postgresql-13 #开机自启
systemctl start postgresql-13
创建sonarqube使用的数据库和用户
psql -U postgres #连接数据库(此命令会用postgres用户,默认连入postgres数据库。-U指定用户 -d指定数据库)
#新建用户sonarqube,密码xxxxxx
create user sonarqube with password 'xxxxxx';
#创建数据库sonarqube_9_6并指定owner为sonarqube
create database sonarqube_9_6 with owner sonarqube;
#授权sonarqube用户在数据库sonarqube_9_6拥有所有权限
grant all on database sonarqube_9_6 to sonarqube;
3.安装sonarqube
安装配置
#创建sonar用户
useradd sonar
#解压文件
cd /opt
unzip sonarqube-9.6.0.59041.zip #解压后的原文件可以mv或者cp -r改名
chown -R sonar: sonarqube-9.6.0xxxx/ #解压后的文件或者mv/cp后的文件修改权限
#备份原始配置文件
cd sonarqube-9.6.0xxx/conf/
mv sonar.properties sonar.properties.bak
#修改配置文件(pgsql连接信息,数据库信息;端口配置,避免端口冲突)
sonarqube安装包下载
sonar.properties配置文件
#postgresql连接配置
sonar.jdbc.username=sonarqube
sonar.jdbc.password=xxxxxx
sonar.jdbc.url=jdbc:postgresql://xx.xx.xx.xx:5432/sonarqube_9_6
sonar.web.javaOpts=-Xmx2g -Xms2g -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9000
sonar.ce.javaOpts=-Xmx4g -Xms512m -XX:+HeapDumpOnOutOfMemoryError
sonar.search.javaOpts=-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError
sonar.search.port=9001
sonar.path.data=data
sonar.path.temp=temp
启动sonar
启动服务时必须用snoar用户。
可以将启动命令写入开机自启(/etc/rc.local)。
#启动
sudo -u sonar /opt/sonarqube-9.6.0xxx/bin/linux-x86-64/sonar.sh start
#停止
sudo -u sonar /opt/sonarqube-9.6.0xxx/bin/linux-x86-64/sonar.sh stop
#重启
sudo -u sonar /opt/sonarqube-9.6.0xxx/bin/linux-x86-64/sonar.sh restart
sonarqube报错解决
sonar单机模式启动会报es内存不足报错,导致es退出。
ERROR es[][o.e.b.Bootstrap] node validation exception
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:
#临时修改
sysctl -w vm.max_map_count=655360
#永久修改
vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
#查看
cat /proc/sys/vm/max_map_count