本文選自程序員s博客(https://blog.csdn.net/u012448904/article/details/81706283),根據其步驟結合自己情況做了一些改動。感謝網絡,讓我們總能站在巨人的肩膀上!
1、環境
系統環境:centos7.0 -x86_64(精簡安裝)
前置條件:jdk1.8 , mysql-5.7
軟件下載目錄:/usr/local/
軟件安裝目錄:/usr/local/
軟件版本:sonarqube-6.7.7,sonar-runner-dist-2.4
sonarqube下載地址:http://www.sonarqube.org/downloads/
sonar-runner下載地址:https://link.jianshu.com/?t=http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
2.安裝環境
1、需要Mysql數據庫支持;雖然SonarQube自帶了H2數據庫,但是為了方便管理數據推薦使用Mysql數據庫。
安裝Mysql數據庫,jdk1.8 ,安裝完成后進入數據庫配置。
1 mysql -u root -p (進入數據庫) 2 mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 3 mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar'; 4 mysql> GRANT ALL ON sonar. TO 'sonar'@'%' IDENTIFIED BY 'sonar'; 5 mysql> GRANT ALL ON sonar. TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; 6 mysql> FLUSH PRIVILEGES;
2、安裝SonarQube
第一步:將下載的sonarqube-6.7.5.zip解壓后移動到/usr/local目錄下
unzip sonarqube-6.7.5.zip 解壓包(如果解壓不了,可能你沒有unzip。通過yum下就可以了)
第二步:配置環境變量
1 [root@localhost local]# vim /etc/profile 2
3 export SONAR_HOME=/usr/local/sonarqube-6.7.7
4 export SONAR_SCANNER_HOME=/usr/local/sonar-runner 5 PATH=$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin 6
7 [root@localhost local]# source /etc/profile
第三步:配置sonar.properties
1 [root@localhost local]# vim sonarqube-6.7.5/conf/sonar.properties
1 #數據庫的賬號密碼,剛才創建的 2 sonar.jdbc.username=sonar 3 sonar.jdbc.password=sonar 4 #連接數據庫 5 sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false 6 #驅動程序類名,其實可以不寫的 7 sonar.jdbc.driverClassName=org.gjt.mm.mysql.Driver 8 sonar.sorceEncoding=UTF-8 9 sonar.login=admin 10 sonar.password=admin 11 12 #開啟端口 13 sonar.web.port=9000
3、啟動SonarQube (重點,這塊最坑了)
SonarQube 啟動不能用root啟動,所以新建一個用戶。必須先啟動elasticsearch,才能在啟動sonar。sonar文件目錄里面有 elasticsearch這個目錄。
1 //創建esuser用戶 2 //目錄組和用戶都是esuser 3 //sonarqube文件設置777 4 //編寫配置文件
5 [root@localhost ]# useradd esuser 6 [root@localhost local]# chown -R esuser.esuser sonarqube-6.7.5
7 [root@localhost local]#chmod 777 -R sonarqube-6.7.5
8 [root@localhost local]# vim sonarqube-6.7.5/elasticsearch/config/elasticsearch.yml
1 //開啟端口和指定服務
2 network.host: 192.168.6.178
3 http.port: 9200
1 // 切換用戶
2 [root@localhost sonarqube-6.7]# su - esuser 3 [esuser@localhost elasticsearch]# ./bin/elasticsearch
啟動的時候會報錯,下面是報錯的資料。
幾乎每一次裝都會遇到的坑,這些坑只有5.x.x版本有,2.x.x版本的幾乎沒有遇到過:
1、機器內剩余內存較少,會啟動失敗,並且有類似如下報錯:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Cannot allocate memory' (errno=12)
這是因為es的jvm參數-Xmx和-Xms默認都為2G
修改config下的jvm.option文件
# vim elasticsearch/elasticsearch-5.5.1/config/jvm.opstions
將
-Xms2g
-Xmx2g
改為
-Xms1g
-Xmx1g
或更小
-Xms512M
-Xmx512M
再次啟動即可
2、啟動的時候出現:
1、
ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk...
問題原因:因為Centos6不支持SecComp,而ES5.x.x默認bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗后直接導致ES不能啟動。詳見 :https://github.com/elastic/elasticsearch/issues/22899
解決方法:在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
2、
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解決方法:切換到root用戶,編輯limits.conf 添加類似如下內容
#vim /etc/security/limits.conf
添加如下內容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
3、
max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
解決方法:切換到root用戶,進入limits.d目錄下修改配置文件。
#vim /etc/security/limits.d/90-nproc.conf
修改如下內容:
* soft nproc 1024
修改為
* soft nproc 2048
4、
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解決方法:切換到root用戶修改配置sysctl.conf
#vim /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
並執行命令:
#sysctl -p
然后,再啟動elasticsearch,即可啟動成功。
---------------------
作者:程序員s
來源:CSDN
原文:https://blog.csdn.net/u012448904/article/details/81624037/
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
不報錯后,再次執行elasticsearch,直到不出現error信息。最后再執行elasticsearch后台運行
1 [esuser@localhost elasticsearch]# ./bin/elasticsearch -d -d代表后台運行
驗證elasticsearch運行成功
1、netstat -nultp 查看端口,能看到9200和9300證明就成功了。
2、訪問:http://192.168.6.178:9200 能給你一個json的文件。
啟動sonar(用esuser啟動)
1 [esuser@localhost sonarqube-6.7.7]# ./bin/linux-x86-64/sonar.sh start
4、Sonar漢化
1. 在https://github.com/SonarCommunity/sonar-l10n-zh,下載漢化包源碼;
2. 本地打包,cmd里面,在解壓包里面運行: mvn install
3. 將打好的jar包,放到:/sonarqube/extensions/plugins目錄;
4. 重啟sonar,即可
5、安裝&配置插件sonar-runner
1 //解壓文件 2 //進入文件 3 //編輯文件 4 [root@localhost local]#unzip sonar-runner-dist-2.4.zip 5 [root@localhost local]#mv sonar-runner-dist-2.4.zip sonar-runner6 [root@localhost local]# cd sonar-runner7 [root@localhost sonar-scanner]# vim conf/sonar-runner.properties
1 #Configure here general information about the environment, such as SonarQube DB details for example 2 #No information about specific project should appear here 3
4
5
6 #----- Default source code encoding 7 sonar.sourceEncoding=UTF-8
8
9 sonar.host.url=http://192.168.6.178:9000
10 sonar.jdbc.username=sonar 11 sonar.jdbc.password=sonar 12 sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8
13 sonar.login=admin 14 sonar.password=admin
6、創建待掃描項目
我的項目放在/root/java/sell 目錄下來了,項目放在哪都行的。
創建一個sonar-project.properties
1 [root@localhost sell]# vim sonar-project.properties 2 3 #項目的key 4 sonar.projectKey=itil:change 5 #項目的名字(可以隨便寫,這個名字在sonar顯示的) 6 sonar.projectName=sell 7 #項目的版本 8 sonar.projectVersion=1.0 9 #需要分析的源碼的目錄 10 sonar.sources=src/ 11 #這是target(如果沒編譯可以不寫) 12 sonar.java.binaries=target/classes 13 #java語言 14 sonar.language=java 15 #編碼格式 16 #sonar.sourceEncoding=UTF-8
1 //開始掃描,
2 [root@localhost sell]# /usr/local/sonar-runner/bin/sonar-runner
執行結果顯示執行成功,如下。