1、sonarqube简介

SonarQube 是一个自我管理的自动代码管理工具,sonarqube实例包含三个组件:sonarqube-scanner ,sonarqube server和Database server,其基本架构图如下:

sonarqube server上主要有3个应用:

  • Web服务:为SonarQube用户界面提供服务的。
  • 搜索服务:基于 Elasticsearch 器。
  • 计算引擎:负责处理代码分析报告并将其保存在SonarQube数据库中。

目前发布了4个版本,社区版(免费),开发者版,企业版和数据中心版

社区版本不支持集群部署,性能上考虑,可将sonarqube服务器和DB服务器分别安装到不同主机上。下面的章节将逐步说明部署的整体过程

2、sonarqube安装

2.1安装要求确认

2.1.1硬件要求

  1. 小型团队安实例SonarQube服务器需要至少2GB的RAM才能高效运行,并且操作系统需要1GB的可用RAM。如果您要为大型团队或企业安装实例,请考虑以下其他建议。
  2. 所需的磁盘空间量将取决于您使用SonarQube分析的代码量。
  3. SonarQube必须安装在具有出色读写性能的硬盘驱动器上。最重要的是,“data”文件夹包含 Elasticsearch 索引,当服务器启动并运行时,将在其上完成大量的 I/O。因此,出色的读写硬盘性能将对SonarQube服务器的整体性能产生重大影响。
  4. SonarQube 不支持服务器端的 32 位系统。但是,SonarQube在扫描仪端确实支持32位系统

在企业级别,监控SonarQube实例至关重要,并且应该随着实例的增长而指导进一步的硬件升级。起始配置应至少包括:

  • 8 个内核,允许主 SonarQube 平台与多个计算引擎工作线程一起运行
  • 16GB 内存 有关数据库和 ElasticSearch 的其他要求和建议,请参阅硬件建议。

2.1.2 支持的平台要求

SonarQube 服务器需要 Java 版本 11,而 SonarQube 扫描程序需要 Java 版本 11 或 17。

SonarQube能够分析任何类型的Java源文件,无论它们遵守Java版本如何。建议使用重要补丁更新 (CPU) 版本。

数据库上支持PostgreSQL,Oracle和Microsoft SQLServer。本安装指导使用PostgreSQL,支持的版本如下:

2.2 安装JDK

1、下载openjdk安装包:

下载链接:Latest Releases | Adoptium

2、安装jdk并添加环境变量

首先,切换到root账号,创建安装目录

mkdir /usr/local/java

然后,将下载的压缩包解压到新建的这个目录下

3、添加环境变量到/etc/profile,并执行source /etc/profile使其生效

export JAVA_HOME=/usr/local/java/jdk-11.0.16.1
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

4、验证java安装

~$ java --version
openjdk 11.0.16.1 2022-08-12
OpenJDK Runtime Environment Temurin-11.0.16.1+1 (build 11.0.16.1+1)
OpenJDK 64-Bit Server VM Temurin-11.0.16.1+1 (build 11.0.16.1+1, mixed mode)

3、安装PostgreSQL

首先创建好普通账号,PostgreSQL安装需要再非root账号下安装。

useradd -m sonarqube -s /bin/bash

切换到sonarqube账号下完成后续安装

3.1安装

3.1.1设置安装源

​
sudo sh -c 'echo "deb Index of /pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

3.1.2 使用apt命令安装

本指导中使用了14版本,官网要求没有这个版本,可以选择官网推荐的版本13

sudo apt  -y install postgresql-14

3.2 初始化配置

3.2.1初始化postgre账号口令

执行如下指令使用postgre账号登录到数据库,然后执行alter命令修改默认口令

$ sudo -u postgres psql
postgres=# alter user postgres with password 'change passwd';

修改后有提示ALTER ROLE即为修改成功

3.2.2 创建sonarqube数据库账号并修改权限

postgre账号登录数据库下,执行如下数据库命令:

postgres=# create user sonarqube with password '需要修改的口令';
postgres=# \du
postgres=# alter user sonarqube createrole createdb replication login;

执行效果如下:

3.2.3 创建sonarqube数据库

执行sql命令如下:

postgres=# create database sonarqube;
postgres=# grant CREATE on DATABASE sonarqube to sonarqube;

执行后查询:

3.2.4 创建sonarqube数据库schema

切换到sonarqube账号登录到数据库,并执行新建指令:

sonarqube@qudoor-virtual-machine:~$ psql  sonarqube -U sonarqube -W
Password:
psql (14.5 (Ubuntu 14.5-1.pgdg22.04+1))
Type "help" for help.sonarqube=> CREATE SCHEMA IF NOT EXISTS sonarqube AUTHORIZATION SESSION_USER;
sonarqube=> \dnList of schemasName    |   Owner
-----------+-----------public    | postgressonarqube | sonarqube
(2 rows)

4、安装SonarQube

4.1 软件包下载

下载链接 https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.6.1.59531.zip

4.2  安装sonarqube

首先新建安装目录,一般放到/opt目录下,mkdir /opt/SonarQube

然后将下载的安装包解压到/opt/SonarQube目录下及完成安装,然后需要更改安装配置。

4.2.1 修改配置

主要的配置文件如下是安装家目录下的conf目录下的sonar.properties文件,需要设置的配置包括:设数据库访问的链接(包含schema,数据库名),数据库访问账号和密码,sonarqube的web地址,访问端口,日志路径以及elasticsearch的数据保存的地址。如下

$ cat sonar.properties
#---数据库访问链接配置
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=sonarqube
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube账号设置的密码
#----web地址绑定及访问地址
sonar.web.host=192.168.65.139
sonar.web.context=/sonarqube
sonar.web.port=9000
#----日志访问路径
sonar.path.logs=/var/log/sonarqube/
#---es数据保存地址,建议此地址修改到/var/log/data和/var/log/tmp
sonar.path.data=data
sonar.path.temp=temp
#以上log地址和es的保存地址需要授权访问,chown -R sonarqube:sonarqube  设置的路径

4.2.2 启动sonarqube

在sonarqube安装目录下的bin目录下的linux-x86-64下执行如下:

./sonar.sh start   #启动
./sonar.sh console #启动过程中查询console打印
./sonar.sh status  #查询状态

5、安装sonar-scanner

scanner的文档地址:SonarScanner | SonarQube Docs

下载链接:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip

首先,新建安装目录:/opt/sonar-scanner。

然后将下载后将压缩包解压到/opt/sonar-scanner目录下,并设置环境变量

修改sonarqube账号的.bashrc文件,添加如下设置:

export PATH=/home/sonarqube/sonar-scanner-4.7.0.2747-linux/bin:$PATH

然后执行source .bashrc使配置生效

6、登录SonarQube主页

安装完成后,sonarqube的访问地址为:http://192.168.65.139:9000/sonarqube

默认登录账号密码是admin/admin,·登录后修改密码,配置下面的账号设置选择修改密码

修改密码方法如下:配置->用户->账号右侧设置按钮->修改密码

添加普通账号,右上角上点击添加账号,补充相关信息,完成添加

设置账号访问秘钥

点击右侧账号打开下拉菜单,选择我的账号,然后选择安全,添加秘钥并报错,注意秘钥只首次显示,需要copy后保存

7、使用scanner完成代码扫描

方法如下:

首先在界面新建项目

设置项目名称,然后点击设置

然后选择本地

选择使用之前已经创建好的令牌,,并点击继续

然后选择需要分析项目的开发语言和平台

将生成的扫描指令复制下来。

登录到scanner扫描服务器下面需要扫描代码的主目录,然后执行这段代码

sonar-scanner \-Dsonar.projectKey=review \-Dsonar.sources=. \-Dsonar.host.url=http://192.168.65.139:9000/sonarqube \-Dsonar.login=替换成设置的令牌

执行如下:

完成后有如下打印:

登录sonarqube的主页,查询报告

SonarQube安装指导相关推荐

  1. 【Devops实践】Git+Gitlab+Jenkins pipeline(maven+Sonarqube+harbor) +k8s 整合CICD

    代码发布流程 #mermaid-svg-3nZ2WvdeoMR4vRrm {font-family:"trebuchet ms",verdana,arial,sans-serif; ...

  2. jenkins+sonarqube流水线脚本模板

    pipeline { //这个任务在哪个主机上运行 //agent any//将这个项目运行在slave上 agent { label 'node1' }//参数化构建,主要设定git_version ...

  3. 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用

    配置成功后的代码分析页面: 可以看到对复杂度.语法使用.重复度等等都做了分析,具体到了每一个方法和每一句代码. 四种使用方式: sonarqube + sonar-runner sonarqube + ...

  4. sonarQube安装及本机扫描C#项目

    因项目需要,需要使用sonarQube对代码进行扫描并查看,因对sonarQube不熟悉,所以先在本机搭建测试环境. 参考了张老师的博客:http://www.cnblogs.com/danzhang ...

  5. sonarqube使用教程

    安装sonarqube请看 https://www.jianshu.com/p/9080642d4179 进入snarqube管理界面 http://ip:port 登录 账号:admin 密码:ad ...

  6. Docker运行sonarqube (代码质量检测平台)

    onarqube是什么 SonarQube是用于持续检查代码质量的开源平台. 可用于持续集成,持续部署流程中的代码检测环节. idea和jenkins都提供了插件配合使用. liunx推荐配置环境 l ...

  7. Jenkins + sonarqube集成实现发布代码审计

    说明:此配置只适合maven部署java代码 1.在Jenkins上安装插件 2.登录sonarqube在配置-->安全-->输入token名点击Generate创建一个token 复制生 ...

  8. 持续集成篇-- SonarQube代码质量管理平台的安装

    IP:192.168.4.221 环境:CentOS 6.6.JDK7.MySQL5.1 .SonarQube-4.5.4(LTS) root用户操作 准备工作:已安装JDK7并配置好了环境变量 1 ...

  9. sonar检测java vue项目_Jenkins集成SonarQube 实现构建项目同时审查代码

    软件版本: SonarQube:7.7 Jenkins:2.164.3 一.简介 SonarQube是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题.同时,它提 ...

最新文章

  1. Kaldi aishell 200h小时训练问题集合
  2. fast nms YOLACT
  3. linux opendir php,php opendir()列出目录下所有文件的实例代码
  4. haproxy5-ssl
  5. 使用JDK中的 keytool【创建证书】・【查看】・【使用】
  6. Dynamics CRM2013 6.1.1.1143版本号插件注冊器的一个bug
  7. 为了USB3,吾还是换了电脑
  8. 精讲RestTemplate第6篇-文件上传下载与大文件流式下载
  9. (计算机组成原理)第三章存储系统-第六节2:页式/段式虚拟存储器
  10. 攀升笔记本电脑P1X Deepin20.3安装 RTL8821CE RTL8152无线网卡驱动
  11. 防火墙的三种工作模式介绍(路由模式、透明模式(网桥)、混合模式)
  12. 3.9 haas506 2.0开发教程-example-oled
  13. proxmox ve 中文社区_基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置...
  14. 第一启富金:两大利空压顶 黄金受压收跌
  15. 逆置线性表(线性表)
  16. 学生信息管理信息系统--添加窗体(学籍,课程,班级,成绩)问题汇总
  17. php smtp用户名和密码错误,PHPMailer中的“SMTP错误:无法进行身份验证”
  18. 两个PDF比较标出差异_泰比 OCR 和 PDF 编辑工具 ABBYY FineReader Enterprise 中文版
  19. 贪嗔痴慢疑 什么是绮语、两舌、恶口?
  20. Python Tkinter Canvas该如何使用

热门文章

  1. nmf java_【rlt;-分析|绘图】 使用NMF包绘制热图
  2. CSS3之size属性
  3. 关于编译Boost库时出现typedef unused的warning的解决办法
  4. Qt+腾讯IM开发笔记(一):腾讯IM介绍、使用和Qt集成腾讯IM-SDK的工程模板Demo
  5. 水利水电安全员考试单选练习题库(2)
  6. Flask (六) 项目(淘票票)
  7. 宝塔搭建PHP 访问403,404怎么解决?
  8. Java学习打卡第四天——[抽象类,多态,接口,形参的简介和使用]
  9. java treemap 方法_Java TreeMap类
  10. Electron调用spawn执行cmd命令