SonarQube 8.4 安装配置手册

一 安装数据库

SonarQube支持的数据库如下:

PostgreSQL: 12 10 11 9.3-9.6
Microsoft SQL Server: 2017 2016 2014
Oracle: 19C 18C 12C 11G

官方文档标注

Oracle JDBC driver versions 12.1.0.1 and 12.1.0.2 have major bugs, and are not recommended for use with the SonarQube (see more details).

但是他支持的最低版本是12.1,所以我直接使用12.1.0.2了,你们可以自行寻找比这个高的版本

操作系统参数修改

1 编辑/etc/sysctl.conf

vi /etc/sysctl.conf	

vm.max_map_count=524288
fs.file-max=131072

2 编辑/etc/security/limits.conf

vi /etc/security/limits.conf

sonar soft nproc 100000
sonar hard nproc 100000
sonar soft nofile 100000
sonar hard nofile 100000

通过ZIP包安装SonarQube

SonarQube支持的JDK版本,服务器端仅支持JDK11,扫描端支持JDK8和JDK11

1 创建sonar用户

SonarQube不能使用root用户启动,所以需要自建用户

useradd -u 900 sonar
passwd sonar

切换到sonar用户修改.bash_profile

export JAVA_HOME=/usr/java/jdk-11
export SONARQUBE_HOME=/app/sonarqube #

2 修改配置文件

修改$SONARQUBE-HOME/conf/sonar.properties

Example for PostgreSQL
sonar.jdbc.username=sonarqube
sonar.jdbc.password=mypassword
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

添加JDBC驱动,除了Oracle之外的驱动官方已经提供(估计和Oracle收费有关,避免版权问题),且官方不建议替换,oracle的JDBC驱动必须放在$SONARQUBE-HOME/extensions/jdbc-driver/oracle下。

3 配置Elasticsearch存储位置

修改$SONARQUBE-HOME/conf/sonar.properties

sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp

4 修改Web服务

修改$SONARQUBE-HOME/conf/sonar.properties

sonar.web.host=192.0.0.1
sonar.web.port=9000
sonar.web.context=/sonarqube

5 修改JDK路径

如果机器中包含多个版本JDK,可以通过编辑$SONARQUBE-HOME/conf/wrapper.conf

vi wrapper.conf

5 启动

On Linux/Mac OS: bin//sonar.sh start
On Windows: bin/windows-x86-64/StartSonar.bat

根据官方样例启动

su - sonar
/app/sonarqube/bin/linux-x86-64/sonar.sh start

6 报错

6.1 Elasticsearch关闭seccomp

我在启动过程中报错

system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

根据官方文档描述

By default, Elasticsearch uses seccomp filter. On most distribution this feature is activated in the kernel, however on distributions like Red Hat Linux 6 this feature is deactivated. If you are using a distribution without this feature and you cannot upgrade to a newer version with seccomp activated, you have to explicitly deactivate this security layer by updating sonar.search.javaAdditionalOpts in $SONARQUBEHOME/conf/sonar.properties_:

意思就是Elasticsearch需要seccomp,但Centos6有的版本不支持这个特性,所以需要关闭Elasticsearch的seccomp这个特性,

vi $SONARQUBEHOME/conf/sonar.properties

sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false

但是我使用上述方法不管用,所以假如使用上述方法可以的,那么不用做以下尝试,以下方案是当上述方案不管用时进行处理,直接修改es的配置文件

vi $SONARQUBEHOME/elasticsearch/config/elasticsearch.yml

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

6.2 Elasticsearch[143]错误

Process exited with exit value [es]: 143

根据上述报错基本无法看出错误问题,但是我们知道这个是Elasticsearch报错

access.log  es.log  README.txt  sonar.log  web.log

日志目录下有以下几个日志,我们观察es.log报错仍然为seccomp,所以我采用了上述第二种方法解决

7 访问

http://10.0.9.59:9000/sonarqube/about

本文地址:https://blog.csdn.net/ciqingloveless/article/details/108578972

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐