CentOS7部署SonarQube 9.9.4 LTS

文章目录

  • 下载地址
  • 前置条件
  • 安装sonarqube
    • 创建用户
    • 解压
    • 修改`sonar.properties`配置文件
  • 启动sonarqube
    • 开启防火墙端口
    • 启动报错
    • 访问SonarQube
      • 安装汉化包
  • 安装sonar-scanner

下载地址

社区稳定版本
在这里插入图片描述

版本依赖关系

Prerequisites and overview (sonarsource.com)

前置条件

  • JDK11安装

    或者根据依赖关系,自己安装相应的jdk版本

  • 安装Postgresql14

    或者根据依赖关系,自己安装相应的postgresql版本

    # 新建用户sonarqube,密码xxxxxx
    CREATE USER sonarqube WITH ENCRYPTED PASSWORD 'sonarqube';
    # 创建数据库sonarqube_9_9并指定owner为sonarqube
    CREATE DATABASE sonarqube_9_9 WITH OWNER sonarqube;
    # 授权sonarqube用户在数据库sonarqube_9_9拥有所有权限
    GRANT ALL PRIVILEGES ON DATABASE sonarqube_9_9 TO sonarqube;
    

安装sonarqube

创建用户

#创建用户sonar,因为sonarqube会用到ES,ES不能用root用户启动
useradd sonar

解压

#解压包
unzip sonarqube-9.9.4.87374.zip	
 
#修改目录的属主属组
chown -R sonar:sonar sonarqube-9.9.4.87374/

修改sonar.properties配置文件

#备份原始配置文件
cd sonarqube-9.9.4.87374/conf/
cp sonar.properties sonar.properties_bak
#postgresql连接配置
vim sonar.properties
 
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://xx.xx.xx.xx:5432/sonarqube_9_9
 
#端口配置
sonar.web.port=9000

启动sonarqube

sudo -u sonar /opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh start

开启防火墙端口

firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload #修改后需要重新加载防火墙生效

# 显示success表示成功
# –zone=public表示作用域为公共的
# –add-port=9000/tcp添加tcp协议的端口端口号为9000
# –permanent永久生效,如果没有此参数,则只能维持当前 服 务生命周期内,重新启动后失效;

启动报错

可以查看/opt/sonarqube-9.9.4.87374/logs下的sonar.loges.log,如果这俩日志都没生成,那大概率是jdk的编译版本不对。需要升级jdk或者降级sonarqube。

2024.03.05 13:40:58 ERROR es[][o.e.b.Bootstrap] node validation exception
[2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2024.03.05 13:40:58 INFO  es[][o.e.n.Node] stopping ...
2024.03.05 13:40:58 INFO  es[][o.e.n.Node] stopped
2024.03.05 13:40:58 INFO  es[][o.e.n.Node] closing ...
2024.03.05 13:40:58 INFO  es[][o.e.n.Node] closed

这两个错误都是由系统限制引起的,以下是解决方案:

  1. max file descriptors is too low:

    • 这个错误表示 Elasticsearch 进程所允许的最大文件描述符数量太低了。您可以通过以下步骤增加文件描述符的限制:

      编辑 /etc/security/limits.conf 文件:在文件末尾添加如下两行:

      * soft nofile 65535
      * hard nofile 65535
      
  2. max virtual memory areas vm.max_map_count is too low:

    • 这个错误表示虚拟内存区域的数量限制太低了。您可以通过以下步骤增加最大虚拟内存区域数量:
      • 临时修改值:执行命令 sudo sysctl -w vm.max_map_count=262144
      • 永久修改值:编辑 /etc/sysctl.conf 文件,在末尾添加:vm.max_map_count=262144,然后运行 sudo sysctl -p 生效。

访问SonarQube

初始用户名密码:admin/admin
在这里插入图片描述

安装汉化包

下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases

# 将下载好的汉化包jar文件移动到插件目录下
/opt/sonarqube-9.9.4.87374/extensions/plugins
 
# 然后重启sonarqube服务
sudo -u sonar /opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh restart

安装sonar-scanner

用于扫描分析项目

# 不一定要和sonarqube装到一个系统下,在哪扫就装哪
# 下载地址
https://docs.sonarsource.com/sonarqube/9.9/analyzing-source-code/scanners/sonarscanner/
 
# 解压在 opt 目录
cd /opt
unzip sonar-scanner-cli-5.0.1.3006-linux.zip
 
 
# 修改配置文件
cd /opt/sonar-scanner-5.0.1.3006-linux/conf
# 先备份配置文件
cp sonar-scanner.properties sonar-scanner.properties.bak
# 再修改
vim sonar-scanner.properties
 
sonar.host.url=http://xx.xx.xx.xx:9000
sonar.sourceEncoding=UTF-8
 
# 在 /etc/profile 的末尾添加环境变量
vim /etc/profile
 
export SONAR_SCANNER_HOME=/opt/sonar-scanner-5.0.1.3006-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
 
# 环境变量立即生效
source /etc/profile
 
# 检查一下命令是否可用
sonar-scanner -v
[root@ps-cnrjkflc-01 conf]# sonar-scanner -v
INFO: Scanner configuration file: /opt/sonar-scanner-5.0.1.3006-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 5.0.1.3006
INFO: Java 17.0.7 Eclipse Adoptium (64-bit)
INFO: Linux 3.10.0-1160.el7.x86_64 amd64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/445928.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode插件-TONGYILingma

通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高…

js之原型链

在JavaScript中,原型链是一种用于实现继承和属性查找的机制。每个对象都有一个内部属性[[Prototype]],这个属性指向创建该对象时使用的构造函数的“prototype"属性。对象的方法和属性定义在它的原型对象上。 1.原型(Prototypes&#xf…

Kafka 面试题及答案整理,最新面试题

Kafka中的Producer API是如何工作的? Kafka中的Producer API允许应用程序发布一流的数据到一个或多个Kafka主题。它的工作原理包括: 1、创建Producer实例: 通过配置Producer的各种属性(如服务器地址、序列化方式等)来…

SQL 注入攻击 - delete注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、注入原理: 对于后台来说,delete操作通常是将对应的id传递到后台,然后后台会删除该id对应的数据。 如果后台没有对接收到的 id 参数进行充分的验证和过滤,恶意用户可能会…

基于Vue的娱讯移动端APP前端设计与实现

目 录 摘 要 Abstract 引 言 1绪论 1.1课题背景及目的 1.1.1移动端APP发展简介 3 1.1.2移动端APP的优势 3 1.2前端开发相关技术 1.2.1前端开发工具介绍 3 1.2.2 前端开发相关技术介绍 4 1.3本章小结 2系统分析 2.1功能需求分析 2.2系统工作流程 2.3本章小结 3系统设…

Breach-2.1

靶场环境说明 该靶场是静态IP地址,需要更改网络配置,攻击机kali做了两张网卡; 信息收集 # nmap -sT --min-rate 10000 -p- 192.168.110.151 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-09 10:47 CST Stats: 0:00:…

2022年我国茶树分布数据以及数据制作过程详细介绍

茶树(Camellia sinensis)是一种典型的农林作物,在60多个国家种植,作为一种重要的特色经济作物,具有重要的经济和社会意义。准确的全国作物数据对于有效的农业管理和资源监管至关重要。然而,许多区域都在努力…

利用Amazon Bedrock畅玩Claude 3等多种领先模型,抢占AI高地(体验倒计时4小时)

快乐的时间总是短暂的,Claude 3 在亚马逊云科技上限时体验仅剩4小时,上次分享了入门级操作教程,本期给大家带来AWS Lambda Amazon Bedrock一起构建可以便捷使用的Claude 3接口 AWS Lambda AWS Lambda 是一项计算服务,可以运行您…

JZ76 删除链表中重复的结点

/*public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} } */import java.util.*; public class Solution {public ListNode deleteDuplication(ListNode pHead) {//初步想想法: 弄一个hashmap 然后进行key存储起来。然后 如果存…

[Buuctf] [MRCTF2020] Xor

运行 1.查壳 32位exe文件,没有壳 2.用32位IDA打开 找到main函数,F5查看伪代码,但是这里会弹出一个窗口 函数分析失败!! 这里我在看别人的题解时发现一种玄学方式解决了这个问题 窗口里面弹出了一个地址401095&…

鸿蒙Harmony应用开发—ArkTS声明式开发(模态转场设置:半模态转场)

通过bindSheet属性为组件绑定半模态页面,在组件插入时可通过设置自定义或默认的内置高度确定半模态大小。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 不支持路由跳转。 bindSheet bind…

【工具】Git的介绍与安装

目录 前言 1W:什么是Git? 2W:为什么使用Git? 3W:如何使用Git? Git的安装步骤 测试 3.1 桌面空白部分鼠标右击 3.2 选择 Open Git Bash here 3.3 输入 git -v 命令查看版本 Git区域分布 Git的工作…

Python列表及其操作详解,从此不再迷茫!

在前面的文章中,我们详细讲了六大数据类型中的数字类型,字符串类型。相信大家都能够熟练的掌握了。那么今天我们来讲解列表(list)。 这是一种常用且重要的数据类型,List可以用来存储一系列的元素,对于后期…

【漏洞复现】锐捷网络NBR700G 信息泄露

0x01 产品简介 锐捷网络NBR700G路由器是锐捷网络股份有限公司的一款无线路由设备。 0x02 漏洞概述 锐捷网络NBR700G路由器存在信息漏洞。未授权的攻击者可以通过该漏洞获取敏感信息。 0x03 测绘语句 fofa:body"系统负荷过高,导致网络拥塞&…

[LeetCode][LCR149]彩灯装饰记录 I——二叉树的层序遍历

题目 LCR 149. 彩灯装饰记录 I 给定一棵圣诞树,记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。按照从左到右的顺序返回每一层彩灯编号。 示例 1: 输入:root [8,17,21,18,null,null,6] 输出:[8,17,…

【Python-Docx库】Word与Python的完美结合

今天给大家分享Python处理Word的第三方库:Python-Docx。 什么是Python-Docx? Python-Docx是用于创建和更新Microsoft Word(.docx)文件的Python库。 日常需要经常处理Word文档,用Python的免费第三方包:Pyt…

Vue3学习记录(六)--- 组合式API之依赖注入和异步组件

一、依赖注入 1、简介 ​ 在前面的笔记中,我们学习过父组件向子组件传递数据时,需要借助props来实现。但如果父组件想要向孙子组件传递数据,那就要连续使用两层props逐级向下传递,如果要接收数据的是更深层的后代组件&#xff0…

管理技巧 | 提升团队效能:如何与下属进行有效沟通

在日常的管理工作中,沟通作为一项基础而关键的技能,往往决定了团队的协作效率和目标达成率。作为一个曾经从基层员工一路成长为管理者的Angelia老师,深知沟通的艺术对于激发团队潜力的重要性。本篇文章与大家分享几个关于如何与下属进行有效沟…

Oracle Essbase 多维库导入文件数据步骤操作

第一步: 先确定导入数据的维度数量(清楚自己需要导入什么数据和范围) 第二步: 设置加载的规则 1.创建规则 2.编辑规则-》打开数据文件 通过数据文件来确定加载规则的加载格式 先查看数据文件格式: 将数据文件导入&…

MySQL执行原理、存储引擎、索引模型简介

1.sql的执行原理 Connectors 连接、支持多种协议,各种语言 Management service 系统管理和控制工具,例如:备份、集群副本管理等 pool 连接池 sql interfaces sql接口-接收命令返回结果 parser 分析解析器:验证 optimizer 优化…