Sonarqube集群安装配置

简介: Sonarqube集群安装配置

本文示例为在ceonts7上安装

Sonarqube依赖

服务器最少需要1C2G的配置
Postgresql数据库,版本为9.3以上,Mysql在7.9版本已经不再支持
OpenJDK 11或者JRE 11
所有sonarqube进程应该以非root用户运行
具体内容可以查看官方文档

安装必备软件及系统参数更改
步骤1:更新系统

sudo yum update -y
步骤2:安装java 11

sudo yum install java-11-openjdk-devel -y
或者选择自己上传JDK包并更新profil文件配置

步骤3:以root用户登录并更改系统参数

vim /etc/security/limits.conf

修改配置文件,在文件最后加入下面两行

  • soft nofile 65536
  • hard nofile 65536
    保存退出

更改sysctl.conf
vim /etc/sysctl.conf

添加以下配置

vm.max_map_count=655360

保存退出

生效

sysctl -p
安装PostgreSQL 10
步骤1:安装PostgreSQL 10 仓库

sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
步骤2:安装PostgreSQL 10

sudo yum install postgresql10-server postgresql10-contrib
步骤3:初始化数据库

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
步骤4:编辑/var/lib/pgsql/data/pg_hba.conf文件更改md5认证

sudo vi /var/lib/pgsql/10/data/pg_hba.conf
找到下面几行

TYPE DATABASE USER ADDRESS METHOD

"local" is for Unix domain socket connections only

local all all peer

IPv4 local connections:

host all all 127.0.0.1/32 ident

IPv6 local connections:

host all all ::1/128 ident
更改peer为trust,更改idnet为md5,更改后为

TYPE DATABASE USER ADDRESS METHOD

"local" is for Unix domain socket connections only

local all all trust

IPv4 local connections:

host all all 127.0.0.1/32 md5

IPv6 local connections:

host all all ::1/128 md5
步骤5:设置启动PostgreSQL

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
步骤6:可以通过下面语句判断下是否启动成功

sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
创建Sonar用户和数据库
步骤1:创建Postgres用户

sudo passwd postgres
步骤2:更换到postgres用户

su - postgres
步骤3:登录数据库

psql
步骤4:新建sonarqubedb数据库

create database sonarqubedb ENCODING='UTF-8';
步骤5:创建sonarqube的数据库用户

create user sonarqube with encrypted password 'your-strong-password';
步骤6:配置权限

grant all privileges on database sonarqubedb to sonarqube;
步骤7:退出数据库

exit
搭建Sonarqube web server
步骤1:下载Sonarqube安装包

cd /opt
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.zip
由于是zip包的形式,如果速度太慢可以本地下载好以后上传到ecs中在安装

步骤2:解压缩zip包并重命名

sudo unzip sonarqube-7.9.zip
sudo mv sonarqube-7.9 sonarqube
步骤3:编辑sonar.properties文件

sudo vi /opt/sonarqube/conf/sonar.properties
将下面几行的注释打开并更改

sonar.jdbc.username=sonarqube
sonar.jdbc.password=你设置的密码
sonar.jdbc.url=jdbc:postgresql://xxx.xxx.xxx.xxx:5432/sonarqubedb?currentSchema=public
默认情况下,sonar会运行在9000端口,可以更改为想要的其他端口,更改如下两行

sonar.web.host=0.0.0.0
sonar.web.port=目标端口
如果不想以http://url/的根路径暴露服务的换,可以更改下面一行添加context

sonar.web.context=/sonar
由于是集群配置,对于master机器的配置如下:

sonar.cluster.enabled=true
sonar.cluster.web.startupLeader=true
sonar.cluster.ce.disabled=false
sonar.cluster.search.disabled=false
sonar.cluster.web.disabled=false
sonar.cluster.search.master=true
sonar.cluster.search.hosts=xxx.xxx.xxx.xxx
sonar.search.clusterName=sq_search_cluster_name
sonar.cluster.search.nodeName=sonarqube_master_nodename
对于slave机器的配置如下:

sonar.cluster.enabled=true
sonar.cluster.web.startupLeader=false
sonar.cluster.ce.disabled=true
sonar.cluster.search.disabled=false
sonar.cluster.web.disabled=true
sonar.cluster.search.master=false
sonar.cluster.search.hosts=xxx.xxx.xxx.xxx
sonar.search.clusterName=sq_search_cluster_name
sonar.cluster.search.nodeName=sonarqube_slave_nodename
接入ldap配置:

LDAP configuration

General Configuration

sonar.security.realm=LDAP
ldap.url=ldaps://qscsso3.qingsongchou.com:636
ldap.bindDn=uid=sonar_test,cn=users,cn=accounts,dc=qscsso3,dc=qingsongchou,dc=com
ldap.bindPassword=*

User Configuration

ldap.user.baseDn=cn=users,cn=accounts,dc=qscsso3,dc=qingsongchou,dc=com
ldap.user.request=(&(objectClass=person)(uid={login}))
ldap.user.realNameAttribute=displayName
ldap.user.emailAttribute=mail

Group Configuration

ldap.group.baseDn=cn=api_group,cn=groups,cn=accounts,dc=qscsso3,dc=qingsongchou,dc=com
ldap.group.request=(&(objectClass=group)(member={dn}))
启动Sonarqube服务
需要新建sonar的linux用户来启动sonar服务

步骤1:创建sonar用户并更改sonarqube文件夹权限

sudo useradd sonar
sudo chown -R sonar:sonar /opt/sonarqube
步骤2:启动sonar服务

sudo su - sonar
cd /opt/sonarqube/bin/linux-x86-64
./sonar.sh start
现在可以通过前面设置的端口在本地访问了

可以通过下面命令查看sonar的状态

./sonar.sh status
SonarScanner的安装和部署
Sonar-scanner提供了sonarqube的CLI访问方式,一般和jenkins插件结合或者自己通过别的方式调用

步骤1:下载安装包

cd /opt
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744-linux.zip
同样,由于是zip包,如果速度慢的话可以本地下载后上传到ecs服务器上

步骤2:解压缩并且重命名文件夹,更改为sonar所属权限

unzip sonar-scanner-cli-4.0.0.1744-linux.zip
mv sonar-scanner-cli-4.0.0.1744-linux.zip sonar-scanner
chown -R sonar:sonar sonar-scanner
步骤3:编辑sonar-scanner.properties

cd /opt/sonar-scanner/conf
vim sonar-scanner.properties
步骤3:更改下面一行,取消注释并配置sonarqube的服务地址,例子中是配置在一台服务器上的

sonar.host.url=http://localhost:9000/sonar
步骤4:添加sonar-scanner的环境变量

vim /etc/profile
添加环境变量

配置sonar-scanner

export SONAR_RUNNER_HOME=/opt/sonar-scanner
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
步骤4:查看是否配置成功

sonar-scanner -h

如果成功可以看到类似如下内容

usage: sonar-scanner [options]

Options:
-D,--define Define property
-h,--help Display help information
-v,--version Display version information
-X,--debug Produce execution debug output

Sonarqube日志路径
所有的日志都放在/opt/sonarqube/logs路径下,可以查看相关的日志

es.log #es的启动日志
sonar.log #sonar服务本身的日志
web.log #web服务的日志,大部分日志和原因可以通过web日志查看到
access.log #用户访问的日志

目录
相关文章
|
前端开发 数据安全/隐私保护
SonarQube的LDAP配置
SonarQube的ldap配置
2263 0
SonarQube的LDAP配置
|
jenkins Java 关系型数据库
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
|
Java jenkins 持续交付
SonarQube安装遇到的常见报错问题启动不起来等
SonarQube安装遇到的常见报错问题启动不起来等
|
存储 Java 测试技术
阿里巴巴java开发手册
这篇文章是关于阿里巴巴Java开发手册的整理,内容包括编程规约、异常日志、单元测试、安全规约、MySQL数据库使用以及工程结构等方面的详细规范和建议,旨在帮助开发者编写更加规范、高效和安全的代码。
|
弹性计算 Java 芯片
技术分享 | 软件跨架构迁移(X86->ARM)的原理及实践
针对阿里云倚天实例的软件迁移,阿里云为开发者提供了迁移工具EasyYitian和性能调优工具KeenTune,能够帮助用户解决软件迁移评估分析过程中人工分析投入大、准确率低、代码兼容性人工排查困难、迁移经验欠缺、反复依赖编译调错定位等痛点,实现业务在ARM ECS的快速适配。EasyYitian支持主流开发语言,通过系统自动化扫描可以一键生成分析报告。KeenTune通过AI算法与专家知识库的有效结合,为软件应用提供动态和静态协同调优的能力。
技术分享 | 软件跨架构迁移(X86->ARM)的原理及实践
|
敏捷开发 Kubernetes 持续交付
阿里云云效产品使用问题之Ingress想配置多个域名,该怎么操作
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
安全 关系型数据库 MySQL
"深度解析:MySQL密码修改与远程登录配置全攻略,保障数据库安全与灵活访问"
【8月更文挑战第9天】MySQL是广受青睐的开源关系型数据库系统,其安全性和易用性对DBA和开发者至关重要。本文通过实例解析MySQL中用户密码更新及远程登录配置,确保数据库安全访问与高效管理。首先介绍如何分步修改密码,包括登录MySQL、选择数据库、使用`ALTER USER`命令更新密码,并刷新权限。接着,指导如何配置远程访问,涉及调整MySQL监听地址、授权用户远程登录、检查网络设置及测试远程连接。遵循这些步骤,可强化数据库安全性并实现灵活管理。
901 0
|
负载均衡 API 数据库
构建高效微服务架构的五大关键技术
【5月更文挑战第4天】 随着云计算和容器化技术的成熟,微服务架构已成为软件开发的主流模式。本文将详细探讨实现高效微服务架构的五个关键技术点:服务拆分策略、API网关设计、服务发现与注册、熔断机制以及分布式事务管理。这些技术点是确保微服务系统可扩展性、灵活性及稳定性的基石,对于后端开发者而言,掌握它们至关重要。文章将提供具体的实施建议和最佳实践,帮助读者构建和维护高性能的微服务系统。
|
存储 Kubernetes 安全
第四章 Helm仓库介绍配置国内仓库地址
第四章 Helm仓库介绍配置国内仓库地址
6777 2