下载sonar
# 存放目录
# mkdir -p /opt/soft/
# cd /opt/soft
# 下载sonar
# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
# unzip sonarqube-7.6.zip
# 将文件移动到/usr/local目录
# mv sonarqube-7.6 /usr/local/sonarqube
创建运行sonar的CentOS账户sonar,并设置账户密码:
# useradd sonar
# passwd sonar
# 赋权限
# chown -R sonar:sonar /usr/local/sonarqube
# chmod 760 /usr/local/sonarqube
# 修改命令执行权限
# vi /etc/sudoers
# 添加如下内容
# sonar ALL(ALL) ALL
配置数据库
Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:
1)创建数据库
在mysql中执行如下脚本创建数据库及mysql用户
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
修改配置文件:
# vi /usr/local/sonarqube/conf/sonar.properties
数据库引擎仅支持 InnoDB
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# ip
sonar.web.host=0.0.0.0
# 端口
sonar.web.port=9000
启动,第一次启动会非常慢,因为要创建数据库表
# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
# 查看日志
# tailf /usr/local/sonarqube/logs/sonar.log
# tailf /usr/local/sonarqube/logs/es.log
访问:
http://localhost:9000
配置为自启动服务
使用root账户或者开启sudo权限操作。
创建自启动脚本文件/etc/init.d/sonar
# vi /etc/init.d/sonar
添加如下内容
#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
/usr/bin/sonar $*
添加启动服务
# ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
# chmod 755 /etc/init.d/sonar
# chkconfig --add sonar
Chinese Pack 安装
1、下载中文插件到本地,下载地址
$ ls
sonar-l10n-zh-plugin-1.16.jar
将下载的 sonar-l10n-zh-plugin-1.16.jar 放到 /usr/local/sonarqube/extensions/plugins 目录下,重启sonar
sonar.java.binaries的配置问题,降低sonar-java-plugin版本
sonar.java.binaries目录找不到,本来是配置项目的输出目录,但是每次执行之前会自动把target目录清除掉,导致sonar一直找不到,所以直接在工作空间下创建了一个target目录,保证sonar一直可以找的到这个目录。
缺点:文件会持续增加
异常处理:
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
* soft nofile 65536
* hard nofile 65536
2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置
* soft nproc 4096
* hard nproc 4096
3、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
# vi /etc/sysctl.conf
# sysctl -p