SonarQube安装指导
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硬件要求
- 小型团队安实例SonarQube服务器需要至少2GB的RAM才能高效运行,并且操作系统需要1GB的可用RAM。如果您要为大型团队或企业安装实例,请考虑以下其他建议。
- 所需的磁盘空间量将取决于您使用SonarQube分析的代码量。
- SonarQube必须安装在具有出色读写性能的硬盘驱动器上。最重要的是,“data”文件夹包含 Elasticsearch 索引,当服务器启动并运行时,将在其上完成大量的 I/O。因此,出色的读写硬盘性能将对SonarQube服务器的整体性能产生重大影响。
- 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安装指导相关推荐
- 【Devops实践】Git+Gitlab+Jenkins pipeline(maven+Sonarqube+harbor) +k8s 整合CICD
代码发布流程 #mermaid-svg-3nZ2WvdeoMR4vRrm {font-family:"trebuchet ms",verdana,arial,sans-serif; ...
- jenkins+sonarqube流水线脚本模板
pipeline { //这个任务在哪个主机上运行 //agent any//将这个项目运行在slave上 agent { label 'node1' }//参数化构建,主要设定git_version ...
- 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用
配置成功后的代码分析页面: 可以看到对复杂度.语法使用.重复度等等都做了分析,具体到了每一个方法和每一句代码. 四种使用方式: sonarqube + sonar-runner sonarqube + ...
- sonarQube安装及本机扫描C#项目
因项目需要,需要使用sonarQube对代码进行扫描并查看,因对sonarQube不熟悉,所以先在本机搭建测试环境. 参考了张老师的博客:http://www.cnblogs.com/danzhang ...
- sonarqube使用教程
安装sonarqube请看 https://www.jianshu.com/p/9080642d4179 进入snarqube管理界面 http://ip:port 登录 账号:admin 密码:ad ...
- Docker运行sonarqube (代码质量检测平台)
onarqube是什么 SonarQube是用于持续检查代码质量的开源平台. 可用于持续集成,持续部署流程中的代码检测环节. idea和jenkins都提供了插件配合使用. liunx推荐配置环境 l ...
- Jenkins + sonarqube集成实现发布代码审计
说明:此配置只适合maven部署java代码 1.在Jenkins上安装插件 2.登录sonarqube在配置-->安全-->输入token名点击Generate创建一个token 复制生 ...
- 持续集成篇-- SonarQube代码质量管理平台的安装
IP:192.168.4.221 环境:CentOS 6.6.JDK7.MySQL5.1 .SonarQube-4.5.4(LTS) root用户操作 准备工作:已安装JDK7并配置好了环境变量 1 ...
- sonar检测java vue项目_Jenkins集成SonarQube 实现构建项目同时审查代码
软件版本: SonarQube:7.7 Jenkins:2.164.3 一.简介 SonarQube是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题.同时,它提 ...
最新文章
- Kaldi aishell 200h小时训练问题集合
- fast nms YOLACT
- linux opendir php,php opendir()列出目录下所有文件的实例代码
- haproxy5-ssl
- 使用JDK中的 keytool【创建证书】・【查看】・【使用】
- Dynamics CRM2013 6.1.1.1143版本号插件注冊器的一个bug
- 为了USB3,吾还是换了电脑
- 精讲RestTemplate第6篇-文件上传下载与大文件流式下载
- (计算机组成原理)第三章存储系统-第六节2:页式/段式虚拟存储器
- 攀升笔记本电脑P1X Deepin20.3安装 RTL8821CE RTL8152无线网卡驱动
- 防火墙的三种工作模式介绍(路由模式、透明模式(网桥)、混合模式)
- 3.9 haas506 2.0开发教程-example-oled
- proxmox ve 中文社区_基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置...
- 第一启富金:两大利空压顶 黄金受压收跌
- 逆置线性表(线性表)
- 学生信息管理信息系统--添加窗体(学籍,课程,班级,成绩)问题汇总
- php smtp用户名和密码错误,PHPMailer中的“SMTP错误:无法进行身份验证”
- 两个PDF比较标出差异_泰比 OCR 和 PDF 编辑工具 ABBYY FineReader Enterprise 中文版
- 贪嗔痴慢疑 什么是绮语、两舌、恶口?
- Python Tkinter Canvas该如何使用
热门文章
- nmf java_【rlt;-分析|绘图】 使用NMF包绘制热图
- CSS3之size属性
- 关于编译Boost库时出现typedef unused的warning的解决办法
- Qt+腾讯IM开发笔记(一):腾讯IM介绍、使用和Qt集成腾讯IM-SDK的工程模板Demo
- 水利水电安全员考试单选练习题库(2)
- Flask (六) 项目(淘票票)
- 宝塔搭建PHP 访问403,404怎么解决?
- Java学习打卡第四天——[抽象类,多态,接口,形参的简介和使用]
- java treemap 方法_Java TreeMap类
- Electron调用spawn执行cmd命令