Day04-SonarQube

Day04-SonarQube

  • 1.SonarQube基本概述
    • 1.1 什么是SonarQube
    • 1.2 使用SonarQube前提环境要求
  • 2. SonarQube服务安装-8.9 lts (PostgreSQL)
    • 2.1 环境准备
    • 2.2 安装Sonarqube依赖工具 -PSQL
  • 2.SonarQube服务安装-7.7 (MySQL)
    • 故障与排查
  • 3.Sonarqube插件管理
  • 4. 创建项目及分析
    • 1) 分析java项目
    • 2) jenkins中配置
  • 今日总结:

1.SonarQube基本概述

常用漏扫工具
sonarqube
openvas
nessus
OWASP
appscan

1.1 什么是SonarQube

SonarQube是一个开源的代码质量管理系统,用于检测代码中的错误,漏洞和代码规范。它可以现有的Gitlab、Jenkins集成,以便在项目拉取后进行连续的代码检查

image-20240523110941230

1.2 使用SonarQube前提环境要求

  • 硬件要求:
SonarQube服务器的小型(个人或小型团队)实例需要至少2GB的RAM才能高效运行,操作系统需要1GB的空闲RAM。如果您正在为大型团队或企业安装实例,请考虑下面的附加建议。
  • 软件要求:
Sonarqube  7.7       jdk 1.8   MySQL数据库
Sonarqube  8.9 lts   jdk  11   PostgreSQL

温馨提示:

数据库从7.9后支持MySQL 支持PostgreSQL PSQL Oracle …

1.SonarQube基于Java开发,所以需要安装Open JDK8版本。
2.SonarQube需要依赖MySQL数据库,至少5.6版本以上。
3.SonarQube的小型实例至少需要4GB内存,如果是大型实例需要16GB

2. SonarQube服务安装-8.9 lts (PostgreSQL)

sonarqube10.0.0.73 1c2G

2.1 环境准备

[root@devops-sonar ~]# systemctl stop firewalld
[root@devops-sonar ~]# systemctl disable firewalld
[root@devops-sonar ~]# setenforce 0

2.2 安装Sonarqube依赖工具 -PSQL

2.SonarQube服务安装-7.7 (MySQL)

机器主机名
gitlabdevops-gitlab2G10.0.0.71
jenkinsdevops-jenkins1G10.0.0.72
sonarqubedevops-sonarqube2G10.0.0.73

0.jdk

yum install -y java

1.数据库准备

#1.安装依赖
yum install git java unzip wget -y

#2. 配置mysql源,安装mysql 5.7 
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=0
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=0
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-8.0-community]
name=MySQL 8.0 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-$basearch/
enabled=0
gpgcheck=0
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

yum install -y mysql-community-server mysql-community-devel mysql-community-client

#启动与初始化
systemctl enable mysqld
systemctl start mysqld

[root@devops-sonar ~]# grep -i password /var/log/mysqld.log 
2024-05-23T03:31:05.652090Z 1 [Note] A temporary password is generated for root@localhost: tw7qcp)9u5;R
2024-05-23T03:31:14.515468Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2024-05-23T03:32:13.105572Z 3 [Note] Access denied for user 'root'@'localhost' (using password: YES)

mysql_secure_installation
Enter password for user root: 输入日志里面生成的密码
/var/log/mysqld.log 过滤password   # sonar的数据库密码:Lidao996@@
Change the password for root ? 是否修改root密码
Do you wish to continue with the password provided? 密码ok,是否继续。
剩下的提问都是Y即可

#创建数据库与用户
create database sonarqube charset utf8;
grant all on sonarqube.* to 'sonarqube'@'localhost' identified by 'Lidao996@@';
#检查用户与数据库信息
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sonarqube          |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| sonarqube     | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)

mysql> 

*2.下载sonarqube,并安装解压至/app/

 mkdir -p /app/tools
 unzip sonarqube-7.7.zip -d /app/tools/
 ln -s /app/tools/sonarqube-7.7/ /app/tools/sonar
 useradd sonar 
 chown -R sonar.sonar /app/tools/sonar/

3.修改sonarqube连接数据库配置文件

vim /app/tools/sonar/conf/sonar.properties

image-20240523114614067

[root@devops-sonar ~]# egrep -vn '^$|#' /app/tools/sonar/conf/sonar.properties
16:sonar.jdbc.username=sonarqube
17:sonar.jdbc.password=Lidao996@@
28:sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

4.启动sonarqube服务(由于es必须普通用户启动,所以不能使用root用户,否则启动失败)

[root@devops-sonar ~]# su - sonar -c '/app/tools/sonar/bin/linux-x86-64/sonar.sh start'

5.访问sonarqube界面访问 通过浏览器访问 http://hostname:9000
点击登录–>输入用户名:admin 用户密码:admin

image-20240523124618933

image-20240523115331869

image-20240523115430830

image-20240523115449709

故障与排查

access.log
ce.log
es.log
sonar.log
web.log

3.Sonarqube插件管理

1.安装中文汉化插件
2.页面上找到Administration > Marketplace–>搜索框chinese,出现一个Chinese Pack,然后点击install
3.界面会提示 reset重启SonarQube,重启再次打开则为汉化。

image-20240523124408332

  • 解压插件包到插件目录下面
rm -f /app/tools/sonar/extensions/plugins/*
tar xf sonar_plugins-7.x-mysql.tar.gz -C /app/tools/sonar/extensions/
ll /app/tools/sonar/extensions/plugins/
重启sonarqube
su - sonar -c '/app/tools/sonar/bin/linux-x86-64/sonar.sh restart '

image-20240523120108508

4. 创建项目及分析

1) 分析java项目

image-20240523133536183

image-20240523133606393

image-20240523133645650

image-20240523133657941

Analyze "sonar-java": bf656a09a2f6adfcb060e46f0d0b0913f82b5f3c

image-20240523133852515

mvn sonar:sonar \
  -Dsonar.projectKey=sonar-java \
  -Dsonar.host.url=http://sonar.oldboylinux.cn:9000 \
  -Dsonar.login=bf656a09a2f6adfcb060e46f0d0b0913f82b5f3c
  • 找个项目分析-jenkins上 进入java-simple项目目录执行 mvn …
echo '172.16.1.73 sonar.oldboylinux.cn' >>/etc/hosts
cd /var/lib/jenkins/workspace/05-test_java_maven
[root@devops-jenkins 05-test_java_maven]# ll
总用量 8
drwxr-xr-x 2 root root  29 2024-05-22 11:27 dist
-rw-r--r-- 1 root root 930 2024-05-22 11:27 pom.xml
-rw-r--r-- 1 root root 213 2024-05-22 11:27 README.md
drwxr-xr-x 3 root root  18 2024-05-22 11:27 src
drwxr-xr-x 4 root root  90 2024-05-22 11:29 target

运行sonarqube扫描

mvn检查异常:因为缺少插件。

使用最新插件包即可sonarqube_7.7.plugins_new.tar.gz

su - sonar   -c  '/app/tools/sonar/bin/linux-x86-64/sonar.sh stop'
rm -f /app/tools/sonar/extensions/plugins/*
ll /app/tools/sonar/extensions/plugins/*
tar xf sonarqube_7.7.plugins_new.tar.gz -C /app/tools/sonar/extensions/
ls /app/tools/sonar/extensions/ |wc -l
su - sonar -c '/app/tools/sonar/bin/linux-x86-64/sonar.sh start'
  • 分析结果

image-20240523134728645

image-20240523134800474

image-20240523141108808

image-20240523141355684

image-20240523141558821

image-20240523141707631

2) jenkins中配置

image-20240523141924067

clean package sonar:sonar -Dsonar.projectKey=${JOB_BASE_NAME} -Dsonar.host.url=http://sonar.oldboylinux.cn:9000 -Dsonar.login=bf656a09a2f6adfcb060e46f0d0b0913f82b5f3c

image-20240523142209360

今日总结:

  • 今日核心案例06:多来几个web,加入负载均衡

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

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

相关文章

简历–求职信–通用

每个毕业生的简历首页大概都会是一封求职信。如果说对求职者的简历正文我们只是浮光掠影看上几眼的话,那么对求职信,简直连浮光掠影都称不上。说实话,我在看求职者简历的时候一般会把这一页翻过去,很少去看。为什么呢?…

springboot宠物领养系统-计算机毕业设计源码08373

目 录 摘要 1 绪论 1.1选题依据 1.2国内外研究现状 1.3相关技术介绍 1.4论文结构与章节安排 2 基于springboot宠物领养系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功…

java 常见错误问题

1.java中datetime数据类型如何定义 在Java中,可以使用java.time包中的DateTime类来定义DateTime数据类型。 要定义DateTime数据类型,你可以使用以下代码: public static void test() {// 获取当前日期和时间LocalDateTime datetime Local…

如何利用AI撰写短文案获客?分享6大平台和3大步骤!

从去年开始,很多大厂都在裁员,原因就是因为AI的火爆,替代了很多机械式的劳动力。以前很多人可以通过机械式的工作来摸鱼,现在AI完成的效率比人工的要高很多倍。 国内好用的AI平台非常多,有时候也可以使用几个AI平台结合…

RAG 工业落地方案框架(Qanything、RAGFlow、FastGPT、智谱RAG)细节比对!CVPR自动驾驶最in挑战赛赛道,全球冠军被算力选手夺走了

RAG 工业落地方案框架(Qanything、RAGFlow、FastGPT、智谱RAG)细节比对!CVPR自动驾驶最in挑战赛赛道,全球冠军被算力选手夺走了。 本文详细比较了四种 RAG 工业落地方案 ——Qanything、RAGFlow、FastGPT 和智谱 RAG,重…

后端之路——最规范、便捷的spring boot工程配置

一、参数配置化 上一篇我们学了阿里云OSS的使用,那么我们为了方便使用OSS来上传文件,就创建了一个【util】类,里面有一个【AliOSSUtils】类,虽然本人觉得没啥不方便的,但是黑马视频又说这样还是存在不便维护和管理问题…

Artificial Intelligence Self-study

Artificial Intelligence Self-study Traditional AI (Symbolic AI) 基于:符号表示 数理逻辑 搜索 - 有明确规则,依靠算力。Appliance : 数学难题(Heuristic Algorithm),棋牌对抗(围棋),专家系统(输入病症&#xf…

02-android studio实现下拉列表+单选框+年月日功能

一、下拉列表功能 1.效果图 2.实现过程 1&#xff09;添加组件 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"wrap_content"android:layout_marginLeft"20dp"android:layout_marginRight"20dp"android…

使用Anaconda虚拟环境安装Opencv、pytorch、torchvision踩坑记录

电脑 python 环境版本过高与下载Opencv&#xff08;3.4以下&#xff09;不匹配&#xff0c;因为版本过高部分算法收米&#xff0c; 从而在虚拟环境重新下载python老版本 本文默认您的电脑上已经安装了Anaconda 我是按照这位博文安装的 安装Opencv (详解)安装3.4.1.15版本…

java数据结构集合复习之包装类和泛型

前言: 这是我最一年学习java的一部分的回顾总结 1.包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 1.1基本数据类型和对应的包装类 ----—基本数据类型包装类…

14. Revit API: Selection(选择器)

前言 这篇写选择器&#xff0c;经过前面好些篇的讲解&#xff0c;总算把前置内容都写完了。 我们来回忆下都在哪里提到过… 算了&#xff0c;直接进入正文。 一、Selection 命名空间 选择器位于Autodesk.Revit.UI.Selection命名空间下&#xff0c;关系到交互嘛&#xff0c;所…

Dns被莫名篡改的逆向分析定位(笔记)

引言&#xff1a;最近发现用户的多台机器上出现了Dns被莫名修改的问题&#xff0c;从系统事件上看并未能正常确定到是那个具体软件所为&#xff0c;现在的需求就是确定和定位哪个软件具体所为。 解决思路&#xff1a; 首先到IPv4设置页面对Dns进行设置&#xff1a;通过ProcExp…

【Axure高保真原型】中继器表格——移入显示详情卡片案例

今天和大家分享中继器表格——移入显示详情卡片的原型模板&#xff0c;鼠标移入员工号或姓名会弹出员工卡片&#xff0c;可以查看更详细的信息。这个表格是用中继器制作的&#xff0c;所以使用也很方便&#xff0c;只需要维护中继器表格里的信息&#xff0c;即可自动生成交互效…

实操Nginx+Tomcat多实例部署,实现负载均衡和动静分离

192.168.10.10 192.168.10.20 192.168.10.30 location ~ \.jsp$ {proxy_pass http://192.168.10.50:8080;} location ~ \.(jsp|html)$ {root /usr/share/nginx/html;}192.168.10.40和192.168.10.50用脚本完成搭建此处安装附上脚本&#xff1a; #!/bin/bash# 定义变量 JDK_PACKA…

生态系统NPP及碳源、碳汇模拟技术教程

原文链接&#xff1a;生态系统NPP及碳源、碳汇模拟技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608293&idx3&sn2604c5c4e061b4f15bb8aa81cf6dadd1&chksmfa826602cdf5ef145c4d170bed2e803cd71266626d6a6818c167e8af0da93557c1288da21a71&a…

nginx 搭理禅道

1.安装nginx。 2.安装禅道。 3.nginx 配置文件 location /zentao/ { proxy_pass http://192.168.100.66/zentao/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-F…

边界无限陈佩文:红蓝对抗安全演练常态化的各方分析

虽然常态化演练尚未正式开始&#xff0c;但我们仍然希望对各方的表现进行一些分析和预测&#xff0c;以辅助我们对市场的判断和决策。同时&#xff0c;也希望通过这些初步的见解&#xff0c;抛砖引玉&#xff0c;引发更多有价值的讨论和观点。 “船停在码头是最安全的&#xf…

【数据库】E-R图、E-R模型到关系模式的转换、关系代数表达式、范式

一、E-R图 1、基本概念 2、实体集之间的联系 3、E-R图要点 &#xff08;1&#xff09;实体&#xff08;型&#xff09;的表示 &#xff08;2&#xff09;E-R图属性的表示 &#xff08;3&#xff09;联系的表示 4、E-R模型的例题 二、E-R模型到关系模式的转换 1、实体型的转换…

pytorch-时间序列

目录 1. 时间序列2. word embedding2.1 one hot2.2 word2vec2.3 GloVe 1. 时间序列 具有时间相关性的序列叫做时间序列&#xff0c;比如&#xff1a;语音、文本句子 2. word embedding 2.1 one hot 针对句子来说&#xff0c;可以用[seq_len, vector_len] 有多少个单词vecto…

因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的 解决方法

目录 1. 问题所示2. 解决方法3. 解决方法1. 问题所示 输入共享文件地址的时候,出现如下信息: 因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的,可能会是你的系统遭受攻击。你的系统需要SMB2或更高版本截图如下所示: 2. 解决…