乘风原创程序

  • SonarQube 8.4 安装配置手册
  • 2020/9/1 11:55:25
  • 一 安装数据库

    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