前言

近期需要搭建一个SonarQube服务。目前SonarQube版本已经更新到7.9版本了,但是为了稳定性,降低风险,选择了安装7.4版本

环境说明

服务 版本 说明
服务器系统 centos7.4/64位 大型项目一般要求8核/16G内存,个人/小项目至少2G内存
JDK JDK8 7.4版本的SonarQube要求jdk8版本
MYSQL JDK8 7.4版本MySQL >=5.6 && <8.0 (在配置文件sonar.properties也有提示)
SonarQube 7.4 当前最新版7.9

上述安装包我放在百度网盘,可以直接在网盘下载哦:
链接:https://pan.baidu.com/s/11xLgBwU8HnB5sUZ63Hw8MQ
提取码:h048
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第1张图片

安装步骤

1、安装jdk8

命令:

# tar xf jdk-8u151-linux-x64.tar.gz -C /usr/local/
# echo -e "export JAVA_HOME=/usr/local/jdk1.8.0_151\n export JRE_HOME=\${JAVA_HOME}/jre\n export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib\n export  PATH=\${JAVA_HOME}/bin:\$PATH" >>/etc/profile
# source /etc/profile
# java -version

2、配置elasticsearch需要的环境

因为SonarQube服务里面包含有elasticsearch服务,所以这两个文件是要修改的。翻了好多网友的博客都没有提到这一步,但是官网是有明确要求的:

# echo -e "* soft nofile 65536\n* hard nofile 131072\n* soft nproc 2048\n* hard nproc 4096\n" >>/etc/security/limits.conf
# echo "vm.max_map_count=655360" >>/etc/sysctl.conf
# sysctl -p

3、安装MySQL

MySQL我是在本机安装的,也有看到网友说MySQL和SonarQube服务安装在同一台机器会报错,说连不上数据库,我的没有这个问题。
MySQL安装步骤略
装好之后,创建数据库并且授权(创建一个空的数据库就行,不需要创建表。表会在启动的时候程序自动创建):

> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
> grant all privileges on sonar.* to "sonar"@"%" identified by "sonar";
> flush privileges;

4、安装SonarQube7.4

4.1 创建专用用户
因为elasticsearch不能用root启动,因此这里也要创建一个专用用户来对SonarQube服务进行管理

# useradd sonar;echo "123456"|passwd --stdin sonar

4.2 下载安装包并解压,修改安装目录权限

# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.4.zip
# unzip sonarqube-7.4.zip   #不要把压缩包解压到以数字开头的目录中
# mv sonarqube-7.4 /usr/local/
# chown sonar:sonar -R /usr/local/sonarqube-7.4/

4.3 创建elasticsearch数据存储目录并授权

# mkdir /data/soarqube/{data,temp} -p
# chown sonar:sonar -R /data/soarqube/

4.4 修改配置文件
/usr/local/sonarqube-7.4/conf sonar.properties文件默认注释掉了所有的内容,主要修改下面这几行(看到很多网友的博客只配置了3行数据库信息,研究了官网之后,增加/修改了后面三行提升性能的配置。只是简单实验的话,配置前面3行数据库就可以了):

[root@test104 conf]# cat sonar.properties|grep -v ^#|grep -v ^$
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://10.0.0.104:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.javaOpts=-server   #这一行内容需要手动添加,可以添加到第100行,是为了优化web server,激活服务器模式,提升和保障性能的
##下面这两行是配置elasticsearch的存储目录,默认是在sonar安装目录下会创建一个data和temp目录,但是官方并不推荐使用默认配置,为了更好的I/O性能以及以后的版本升级,推荐将这两个目录另外配置到专门的数据目录下:
sonar.path.data=/data/soarqube/data
sonar.path.temp=/data/soarqube/temp
[root@test104 conf]# 

4.5 启动服务

[root@test104 conf]# su sonar
[sonar@test104 conf]$ cd /usr/local/sonarqube-7.4/bin/linux-x86-64/
[sonar@test104 linux-x86-64]$ ./sonar.sh start

启动完成之后,能看到这4个进程:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第2张图片

在/usr/local/sonarqube-7.4/logs/目录会在运行启动脚本之后,就会按照启动的顺序,生成下面的几个日志,如果启动失败,就可以来这里看日志找原因:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第3张图片

启动这4个进程需要一定的时间,开启sonar.log日志的实时输出,看到出现下面的内容,说明整个服务就启动好了:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第4张图片

4.6 服务验证
查看web端口起来了:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)

在浏览器访问web地址:http://10.0.0.104:9000/about 出现下面的界面:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第5张图片

到这里搭建就完成了。下面是额外需求:汉化。

5 安装汉化包

5.1 登录SonarQube服务,搜索汉化包

点击“Log in”登录,默认的用户名密码是admin/admin
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第6张图片

centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第7张图片

因为现在还不使用SonarQube,所以Analyze a project这一步可以先跳过,以后用的时候再来设置:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第8张图片

然后点击界面上的”Adminstration“,选择下方的“Marketplace”,在下面的Plugins一栏,搜索“Chinese Pack”,搜索出来之后,点击insatll进行安装:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第9张图片

安装完之后,点击restart重启服务:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第10张图片

之后重新登录,就是中文界面了:
centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第11张图片

centos7简单搭建并汉化代码质量检查工具:SonarQube(7.4版本)_第12张图片

到此,7.4版本的SonarQube已经搭建、汉化工作完毕