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集成,以便在项目拉取后进行连续的代码检查
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)
sonarqube | 10.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)
机器 | 主机名 | ||
---|---|---|---|
gitlab | devops-gitlab | 2G | 10.0.0.71 |
jenkins | devops-jenkins | 1G | 10.0.0.72 |
sonarqube | devops-sonarqube | 2G | 10.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
[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
故障与排查
access.log
ce.log
es.log
sonar.log
web.log
3.Sonarqube插件管理
1.安装中文汉化插件
2.页面上找到Administration > Marketplace–>搜索框chinese,出现一个Chinese Pack,然后点击install
3.界面会提示 reset重启SonarQube,重启再次打开则为汉化。
- 解压插件包到插件目录下面
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 '
4. 创建项目及分析
1) 分析java项目
Analyze "sonar-java": bf656a09a2f6adfcb060e46f0d0b0913f82b5f3c
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'
- 分析结果
2) jenkins中配置
clean package sonar:sonar -Dsonar.projectKey=${JOB_BASE_NAME} -Dsonar.host.url=http://sonar.oldboylinux.cn:9000 -Dsonar.login=bf656a09a2f6adfcb060e46f0d0b0913f82b5f3c
今日总结:
- 今日核心案例06:多来几个web,加入负载均衡