sonar 集群环境工作机制的深入理解

sonar 集群配置一般是一个master,和几个es 构成的集群环境,而master和es 机器的确定,就是由sonar.properties文件配置确定的。

sonar master properties主要 配置:

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=10.37.124.178
sonar.search.clusterName=sq_search_cluster
sonar.cluster.search.nodeName=sonarqube178

 

jvmOps配置jvm 参数后面都要添加:-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7095 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.37.124.178

10.37.124.178就是master的IP

如:

sonar.web.javaOpts=-Xms4g -Xmx4g -Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=7095 -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.37.124.178

sonar master 运行起来的后台进程:

[root@conf]# 
[root@conf]# jps
12947 Jps
32213 SearchServer
32182 WrapperSimpleApp
32439 CeServer
32332 WebServer
[root@conf]# 

官方对上面四个进程的说明:

SonarQube平台由四个部分组成:

  1. 一个  SonarQube服务器  启动3个主要过程:
    1.  面向开发人员的  Web服务器,管理者可以浏览质量快照并配置SonarQube实例
    2. 一个基于Elasticsearch 的  搜索服务器 来从UI恢复搜索
    3. 一个计算引擎服务器负责处理代码分析报告,并将其保存在数据库SonarQube
  2. 一个  SonarQube  数据库来存储: 
    • SonarQube实例的配置(安全性,插件设置等)
    • 项目,视图等的质量快照
  3. 安装在服务器上的多个  SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件
  4. 一台或多台SonarQube扫描仪  在您的生成/连续集成服务器上运行以分析项目 

searchServer 是ElasticSearch集群服务,WrapperSimpleApp是基本的计算进程;WebServer 是sonar web服务,CeServer是什么服务呢?

CeServer :一台或多台SonarQube扫描仪  在您的生成/连续集成服务器上运行以分析项目 

这个进程负责和扫描插件msbuild,maven-scanner,ant-scanner,gradle-scanner等进行数据扫描的交互,其中设计规则数据的交互,然后生成统计数据文件。

对于sonar 一台slave(es)配置:

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=10.37.124.178
sonar.search.clusterName=sq_search_cluster
sonar.cluster.search.nodeName=sonarqube179

后台进程信息:

[root@conf]# jps
21558 SearchServer
21527 WrapperSimpleApp
8173 Jps
[root@conf]# 

对扫描仪进程的官方说法:

分析期间

在分析过程中,从服务器请求数据,分析提供给分析的文件,并将结果数据以报告的形式发送回服务器,然后在服务器端进行异步分析。

分析报告排队并按顺序处理,因此在分析日志显示完成后很短的时间内,很可能在SonarQube项目中看不到更新的值。但是,您将能够知道发生了什么,因为图标将被添加到项目名称旁边。将鼠标悬停在上方以获取更多详细信息(如果使用适当的权限登录,则链接为链接)。

一旦处理完成,图标就会消失,但如果分析报告处理由于某种原因而失败,图标将会改变:

有关分析报告处理的更多详细信息,请参阅后台任务。

运行分析

首先,您应该直接下载  或通过Marketplace来安装要分析项目语言的插件  。

那么,你需要选择一种分析方法。以下是可用的:

  • 用于MSBuild的SonarQube扫描仪:启动.Net项目的分析
  • 适用于Maven的SonarQube扫描仪:以最少的配置从Maven启动分析
  • 用于Gradle的SonarQube扫描仪:启动Gradle分析
  • 用于Ant的SonarQube扫描仪:从Ant开始分析
  • Jenkins的SonarQube扫描仪:从Jenkins发布分析
  • SonarQube扫描仪:当没有其他分析仪适用时,从命令行启动分析

请注意,我们不建议在运行SonarQube分析的计算机上运行防病毒扫描程序,否则可能会导致不可预知的行为。

 

 

 

你可能感兴趣的:(sonar)