Centos7安装SonarQube7.9.3

1. 简介

SonarQube 是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。

官网

2. 环境

Centos 7

JDK 11

PostgreSQL 10

3. 创建用户

# 创建sonar系统用户
groupadd sonar
useradd sonar -g sonar

4. 优化参数

sysctl -w  vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -u 4096 sonar
ulimit -n 65536 sonar

5. 安装PostgreSQL10

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql10
yum install postgresql10-server
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10

创建数据库和用户,并把数据库分配给该用户,并授予权限

# 登录postsql 
su - postgres
psql 
# 创建数据库和用户,并把数据库分配给该用户,并授予权限
create database sonar;
create user sonar;
alter user sonar with password 'sonar';
alter role sonar createdb;
alter role sonar superuser;
alter role sonar createrole;
alter database sonar owner to sonar;
# 退出
q
exit

修改配置文件/var/lib/pgsql/10/data/pg_hba.conf,将ident全部改为md5

改完重启postsql

systemctl restart  postgresql-10

6. 安装SonarQube

版本是sonarqube-7.9.3

1. 下载SonarQube

下载地址

解压sonar,并设置权限

yum install unzip
unzip sonarqube-7.9.3.zip
mkdir /opt/sonar
mv sonarqube-7.9.3/* /opt/sonar/
groupadd sonar
useradd sonar -g sonar
chown -R sonar.sonar /opt/sonar/

3. 修改配置文件

vim /opt/sonar/conf/sonar.properties

修改数据库相关的配置

sonar.jdbc.username=sonar 
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

注意:sonar默认监听9000端口,如果9000端口被占用,需要更改。

4. 启动SonarQube

# 启动
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh start

# 查看状态
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh status

# 停止
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh stop

# 查看日志
tail -f /opt/sonar/logs/sonar.log

5. 常见错误

app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143

这个报错一般是数据库连接问题,请查看sonar/logs/web.log

app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1

这个报错一般是es不能使用root启动原因导致

Caused by: org.postgresql.util.PSQLException: ERROR: no schema has been selected to create in

是因为没权限,要注意授权

java.lang.IllegalStateException: Fail to connect to database

无法连接数据库,注意IP地址

6. 参考

Jenkins自动化之路-Centos7 安装SonarQube8

Centos7安装部署SonarQube7.9.1教程

原文地址:https://www.cnblogs.com/ifme/p/12878653.html