投稿004期|SonarQube 學習注意事項和技巧
來自專欄猿論4 人贊了文章
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 descriptorsthe user running SonarQube 至少能打開 2048 threads
檢查上述參數的命令:
sysctl vm.max_map_count
sysctl fs.file-maxulimit -nulimit -u
修改機器參數的命令:
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536ulimit -n 65536ulimit -u 2048
ElasticSearch注意事項
Sonar會用到ElasticSearch,因為大家知道,ElasticSearch 不支持root賬號執行。所以需要創建一個Sonar的賬號。常見的異常如下:2018.05.23 23:39:21 ERROR es[][o.e.b.Bootstrap] Exceptionjava.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需要特別注意的事項,其他的操作都很容易了,大家可以參考官網。
作者:小強聊架構
鏈接:https://www.imooc.com/article/32157
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作
推薦閱讀:
【官方】手記欄目認證作者招募,長期有效,隨時報名!_慕課手記
有獎徵文005期 |人生路上得一良師,是何感受?
用proxy實現一個更優雅的vue
五種網路IO模型和select/epoll對比
暴露真實IP真的沒關係嗎?
推薦閱讀: