SonarQube 8.4.2代码质量检测平台搭建

软件版本

SonarQube 官方地址:https://www.sonarqube.org/

软件版本
CentOS7.6
SonarQube8.4.2
OpenJDK11
PostgreSQL12

安装基础工具,关闭防火墙

yum install -y unzip wget vim lrzsz
systemctl stop firewalld && systemctl disable firewalld

OpenJDK 安装

mkdir /opt/openjdk
cd /opt/openjdk/
wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz 
rm -f zxvf openjdk-11+28_linux-x64_bin.tar.gz

编辑 /etc/profile环境变量文件,追加以下内容

# openjdk-11
export JAVA_HOME=/opt/openjdk/jdk-11
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /etc/profile

查看验证版本

[root@localhost openjdk]# java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

PostgreSQL安装

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

修改 /var/lib/pgsql/12/data/pg_hba.conf 配置,开放所有 Host 的访问:
在这里插入图片描述
重启postgresql

systemctl restart postgresql-12

创建 sonar 用户与 sonar 数据库

[root@localhost ~]# psql -U postgres
psql (12.4)
输入 "help" 来获取帮助信息.

postgres=# CREATE USER sonar WITH PASSWORD 'sonar';
CREATE ROLE
postgres=# CREATE DATABASE sonar WITH OWNER sonar ENCODING 'UTF8';
CREATE DATABASE
postgres=# exit
[root@localhost ~]# psql -h 127.0.0.1 -d sonar -U sonar 
psql (12.4)
输入 "help" 来获取帮助信息.

sonar=> \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 sonar     | sonar    | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 行记录)

sonar=> exit

SonarQube安装

如果当前的会话是root用户,可以直接通过下面的命令去临时修改这四个参数,重启服务器失效

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

想要永久生效的话,需要手动修改/etc/security/limits.conf文件,在文件尾部添加:

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

修改/etc/sysctl.conf文件,在文件尾部添加:

vm.max_map_count=262144
fs.file-max=65536

/etc/security/limits.conf/etc/sysctl.conf更新完毕后必须重启服务器。

接着新增一个用户sonarqube(根本原因是ElasticSearch不能用root用户启动):

useradd sonarqube && echo sonarqube | passwd --stdin sonarqube

安装SonarQube:

mkdir /opt/sonarqube
cd /opt/sonarqube
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.4.2.36762.zip
# 慢的话可以用迅雷下载
unzip sonarqube-8.4.2.36762.zip
rm -f sonarqube-8.4.2.36762.zip
chown -R sonarqube:sonarqube /opt/sonarqube
su - sonarqube

修改 conf/sonar.properties 配置

cd /opt/sonarqube/sonarqube-8.4.2.36762/
vim conf/sonar.properties

修改以下内容

# 数据库连接
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonar
# webUI访问端口,可以默认9000不修改,我因为短裤冲突改成29000
sonar.web.port=29000

调试启动

cd /opt/sonarqube/sonarqube-8.4.2.36762/bin/linux-x86-64/
[sonarqube@service linux-x86-64]$ ./sonar.sh console
Running SonarQube...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    | 
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/sonarqube-8.4.2.36762/temp
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/sonarqube-8.4.2.36762/elasticsearch]: /opt/sonarqube/sonarqube-8.4.2.36762/elasticsearch/bin/elasticsearch
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.e.p.PluginsService] no modules loaded
jvm 1    | 2020.09.03 17:47:09 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
jvm 1    | OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
jvm 1    | 2020.09.03 17:47:21 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
jvm 1    | 2020.09.03 17:47:21 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/opt/sonarqube/sonarqube-8.4.2.36762]: /opt/openjdk/jdk-11/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/sonarqube-8.4.2.36762/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/opt/sonarqube/sonarqube-8.4.2.36762/lib/jdbc/postgresql/postgresql-42.2.14.jar org.sonar.server.app.WebServer /opt/sonarqube/sonarqube-8.4.2.36762/temp/sq-process14574859738991867291properties
jvm 1    | 2020.09.03 17:47:48 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up
jvm 1    | 2020.09.03 17:47:48 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/opt/sonarqube/sonarqube-8.4.2.36762]: /opt/openjdk/jdk-11/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/sonarqube-8.4.2.36762/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/opt/sonarqube/sonarqube-8.4.2.36762/lib/jdbc/postgresql/postgresql-42.2.14.jar org.sonar.ce.app.CeServer /opt/sonarqube/sonarqube-8.4.2.36762/temp/sq-process993338404548967129properties
jvm 1    | 2020.09.03 17:47:53 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1    | 2020.09.03 17:47:53 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

Ctrl+C取消,然后后台启动

[sonarqube@localhost linux-x86-64]$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.

UI访问,默认账号密码admin/admin
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值