软件版本
SonarQube 官方地址:https://www.sonarqube.org/
软件 | 版本 |
---|---|
CentOS | 7.6 |
SonarQube | 8.4.2 |
OpenJDK | 11 |
PostgreSQL | 12 |
安装基础工具,关闭防火墙
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