avatar

目录
SonarQube系列一之Linux安装部署

SonarQube系列(一)之Linux安装部署

前言

SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:

SonarQube集成 gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。

SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。

官方网站:https://www.sonarqube.org/

1.【SonarQube安装】

安装OpenJDK8

1.检查是否已安装JDK及卸载

yum list installed | grep [java][jdk]

2.卸载JAVA环境

yum -y remove java-1.6.0-openjdk*  //表时卸载所有openjdk相关文件输入

yum -y remove tzdata-java.noarch   //卸载tzdata-java

3.安装JDK

查看JDK软件包列表

yum search java | grep -i --color jdk

选择版本安装

yum install -y java-11-openjdk*  

查看JDK是否安装成功

java -version

4.配置环境变量

1.JDK默认安装路径/usr/lib/jvm

ls /usr/lib/jvm

2.在/etc/profile 文件添加如下命令

Code
1
2
3
4
5
6

# set java environment
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH

3.保存 profile 文件,执行以下命令

source  /etc/profile

4.使用如下命令,查看JDK变量

Code
1
2
3
echo $JAVA_HOME  
echo $PATH
echo $CLASSPATH

Sonar启动必须 非root用户

1.添加系统用户

useradd sonarqube
passwd sonarqube

密码设置为:sonarqube(个人设置)

2.优化系统参数

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

3.设置目录权限
cd /home
mkdir sonarqube
chown -R sonarqube:sonarqube /home/sonarqube

安装Sonar

  1. sonar官网 下载Community安装包
    SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。

下载完成后,我们把安装包 sonarqube-8.3.1.zip 放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压。

yum install unzip

unzip sonarqube-8.3.1.34397.zip

SonarQube

bin目录存放了各个环境的启动脚本
conf目录存放着sonarqube的配置文件
logs目录存放着启动和运行时的日志文件

2.配置 SonarQube

sonar.properties 这个配置文件里配置了支持的数据库信息,mysql需要手动配置

Code
1
2
3
4
5
6
7
8
9

#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:39901/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=false
sonar.jdbc.username=sonarqube
sonar.jdbc.password=xxxxx

wrapper.conf 这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等

3.SonarQube 启动

#切换用户
su sonarqube

#切换目录
cd /home/sonarqube/sonarqube-8.3.1.34397/bin/linux-x86-64/

#启动sonar
./sonar.sh  start

#查看sonar运行状态
sh sonar.sh status 

#浏览器访问,默认账号密码:admin
http://虚拟机IP:9000/ 

#浏览器如果访问不成功,检查防火墙是否开放9000端口
    ## 检查防火墙配置
    sudo firewall-cmd --list-all

    ## 开启8080端口
    sudo firewall-cmd --zone=public --add-port=9000/tcp 
    sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent

    ## 重新加载防火墙配置
    sudo firewall-cmd --reload

4.SonarQube日志

es.log es或mysql等数据库连接报错,一般是mysql的连接字符串账号密码错误或者sonar账号权限不够;

es.log 数据库初始化失败 MySQL sonar 账户权限不足

sonar.log sonar服务的启动日志

web.log sonarqube web的启动日志

5.FAQ:

5-1: can not run elasticsearch as root

5-2:java.lang.IllegalStateException: SonarQube requires Java 11 to run

2.【SonarQube插件】

参考资料
QiXiao_柒小(東): 《SonarQube系列一、Linux安装与部署》

文章作者: HJY
文章链接: https://hjy-dev.github.io/2019/12/20/SonarQube%E7%B3%BB%E5%88%97%E4%B8%80%E4%B9%8BLinux%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/
版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明来自 Kiven Blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论