前言
近期需要搭建一个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
安装步骤
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
在/usr/local/sonarqube-7.4/logs/目录会在运行启动脚本之后,就会按照启动的顺序,生成下面的几个日志,如果启动失败,就可以来这里看日志找原因:
启动这4个进程需要一定的时间,开启sonar.log日志的实时输出,看到出现下面的内容,说明整个服务就启动好了:
在浏览器访问web地址:http://10.0.0.104:9000/about 出现下面的界面:
到这里搭建就完成了。下面是额外需求:汉化。
5 安装汉化包
5.1 登录SonarQube服务,搜索汉化包
点击“Log in”登录,默认的用户名密码是admin/admin
因为现在还不使用SonarQube,所以Analyze a project这一步可以先跳过,以后用的时候再来设置:
然后点击界面上的”Adminstration“,选择下方的“Marketplace”,在下面的Plugins一栏,搜索“Chinese Pack”,搜索出来之后,点击insatll进行安装:
到此,7.4版本的SonarQube已经搭建、汉化工作完毕