SonarQube学习笔记

一、简介

官方介绍SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的连续代码检查。官方地址其中包含web、数据库(7.9以后不支持mysql了)、插件。

刚接触SonarQube的时候会被很多名词搞得晕头转向的,SonarQube、SonarQube Scanner、SonarQube runner等等。先大致说一下,之后随着安装就明白了。
SonarQube是server接受来自扫描器SonarQube Scanner的分析,然后将数据存入数据库,再在web端展示。而扫描器SonarQube Scanner里包含有很多插件,如:

这里其他的都挺好理解,有个SonarQube Scanner官方文档是介绍

意思是没有特定特定的扫描器比如gradle或maven之类的使用的通用扫描器。(SonarQube runner我理解应该是插件的一种,和gradle或maven属一个类型,反正在8.4的版本中看不到这个词了,可能是比较早期的版本有吧。)

二、安装

(一)服务器安装

因为7.9以后就不支持mysql数据库了,我们这里选择了7.6版本。
7.6下载地址

1、装备工作

创建sonar用户,将程序拷贝到家目录解压,并给予权限。

useradd sonar
chown sonar.sonar sonarqube-7.6.zip
mv sonarqube-7.6.zip /home/sonar
su - sonar
unzip sonarqube-7.6.zip

  • bin目录存放了各个环境的启动脚本
  • conf目录存放着sonarqube的配置文件
  • logs目录存放着启动和运行时的日志文件
  • elasticsearch安装包带的ES不用单独装

3、安装mysql、jdk

查看支持版本

1、安装mysqlmysql安装文档
jdk就不说了,自带的版本是1.8的也能用

2、创建用户

在mysql添加了一个 **sonarqube **的用户,并且创建了一个数据库叫 sonar,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。

create database sonarqube
grant all on sonarqube.* to sonarqube@'%' identified by 'Mysql@password.123';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP ON sonarqube.* TO 'sonarqube'@'%';
flush privileges;

MySQL数据库的共享锁定策略可能会影响SonarQube运行时。确保将is_read_committed_snapshot_on其设置为true防止SonarQube在重负载下面临潜在的死锁。
ALTER DATABASE YourSonarQubeDatabase SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

4、配置sonar

1、sonar.properties

cd conf
vim sonar.properties
添加
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  
把logcalhost改成IP
sonar.jdbc.username = sonarqube
sonar.jdbc.password = yourpassword       这里改成你自己的密码,注意复杂度

2.wrapper.conf
wrapper.conf这个文件可以设置使用的java的路径,我这里用默认的java就不用改这个文件了。

3、es配置
配置要求

  • vm.max_map_count 大于或等于262144
  • fs.file-max 大于或等于65536
  • 运行SonarQube的用户可以打开至少65536个文件描述符
  • 运行SonarQube的用户可以打开至少2048个线程
使用root用户
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p

vim /etc/security/limits.conf
sonarqube   -   nofile   65536
sonarqube   -   nproc    2048

切换sonar用户
cd /home/sonar/sonarqube-7.6/elasticsearch/config
vim jvm.options
修改jvm内存,一般情况设置物理内存的三分之一就行

5、启动

cd sonarqube-7.6/bin/linux-x86-64
./sonar.sh start
./sonar.sh status

服务启动成功,默认端口是9000,如果启动没成功,到logs下边看看,不是es就是web.log

(二)docker部署

docker安装可以测试集群,集群的部署需要至少5台。
待补充。。。

三、安装插件

安装汉化插件
配置--应用市场--chinese--重启sonar

posted @ 2020-07-22 21:12  名字很长容易被惦记  阅读(485)  评论(0编辑  收藏  举报