为了账号安全,请及时绑定邮箱和手机立即绑定

投稿004期|SonarQube 学习注意事项和技巧

标签:
架构

Sonar 是一个很优秀的代码分析工具,可以帮助程序员们发现很多潜在的问题和BUG。
最近作者重新安装部署的Sonar的最新版,安装中遇到了很多的坑,给大家讲讲,少走弯路。

  1. 架构篇
    SonarQube平台主要由4个组件组成:
    A. SonarQube服务器:
    主要包括web服务器,基于ElasticSearch的搜索服务器,计算引擎服务器。
    其中,web服务器,顾明思义,就是供开发人员浏览查看代码分析结果,进行相应的配置等。 计算引擎服务器主要是处理代码分析报表并将其存储在数据库。
    B. SonarQube 数据库:
    存储配置信息和代码分析报表。
    C. 多个Soanr插件:包括分析各种语言的插件。
    D. 多个Sonar Scanner,主要运行在开发人员的代码端,可以单独部署,也可以集成在Maven,Gradle等。

架构图描述如下:
图片描述

2.环境篇
对于Linux 环境,一定要检查环境

vm.max_map_count 大于等于 262144
fs.file-max 大于等于 65536
the user running SonarQube 至少能打开 65536 file descriptors
the user running SonarQube 至少能打开 2048 threads

检查上述参数的命令:

sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u

修改机器参数的命令:

sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 2048

ElasticSearch注意事项
Sonar会用到ElasticSearch,因为大家知道,ElasticSearch 不支持root账号执行。
所以需要创建一个Sonar的账号。
常见的异常如下:

2018.05.23 23:39:21 ERROR es[][o.e.b.Bootstrap] Exception
java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]

同时,ElasticSearch会检查system_call_filter
在安装Sonar的过程中,需要关闭system_call_filter的检查。
步骤如下:
1>. sonar.properties
设置:

sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false"

2>. wrapper.conf
设置

wrapper.java.additional.1=-Dsonar.wrapped=true
-Dbootstrap.system_call_filter=false

3>. /sonarqube-7.1/elasticsearch/config/elasticsearch.yml
添加:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

以上是SonarQube需要特别注意的事项,其他的操作都很容易了,大家可以参考官网。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消