sonar啓動的時候出現Process exited with exit value [es]: 143異常,這裏有標註es(elasticsearch)的問題,所以要查看es的log。
我本機的sonar的logs目錄如下:
[root@centos7 logs]# pwd
/opt/sonar/sonarqube-7.2.1/logs
[root@centos7 logs]# ll
總用量 200
-rw-r--r--. 1 pangkunkun1 pangkunkun1 5641 7月 16 22:12 access.log
-rw-r--r--. 1 pangkunkun1 pangkunkun1 1565 7月 16 22:11 ce.log
-rw-r--r--. 1 pangkunkun1 pangkunkun1 63061 7月 16 22:11 es.log
-rw-r--r--. 1 pangkunkun1 pangkunkun1 88 6月 29 13:35 README.txt
-rw-r--r--. 1 pangkunkun1 pangkunkun1 49793 7月 16 22:11 sonar.log
-rw-r--r--. 1 pangkunkun1 pangkunkun1 66260 7月 16 22:11 web.log
總共出現以下幾個異常:
1、can not run elasticsearch as root
因爲es不允許使用root用戶啓動,所以運行sonar的時候必須要新創建其它用戶,然後用創建的用戶啓動sonar。
2、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
這裏要增加vm.max_map_count的值
[root@centos7 sonarqube-7.2.1]# vi /etc/sysctl.conf
vm.max_map_count=262144
[root@centos7 sonarqube-7.2.1]# sysctl -p
在/etc/sysctl.conf中添加vm.max_map_count=262144後執行sysctl -p使配置生效。
3、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解決方案同上
[root@centos7 sonarqube-7.2.1]# vi /etc/security/limits.conf
pangkunkun1 hard nofile 65536
pangkunkun1 soft nofile 65536
這裏的pangkunkun1爲上面創建的用來啓動sonar的用戶,修改好之後要切換到pangkunkun1這個用戶之後才能生效。
使用ulimit -Hn指令查看配置是否生效:
[pangkunkun1@centos7 sonarqube-7.2.1]$ ulimit -Hn
65536
問題解決。
sonar啓動比較慢(還有web端要啓動),要出現以下信息纔算完全啓動成功
ile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonar/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/opt/sonar/sonarqube-7.2.1/lib/jdbc/h2/h2-1.3.176.jar org.sonar.ce.app.CeServer /opt/sonar/sonarqube-7.2.1/temp/sq-process6440421051293515829properties
jvm 1 | 2018.07.16 22:11:58 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1 | 2018.07.16 22:11:58 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
輸入 http://10.10.20.127:9000 後就可以進入web端了,使用admin/admin進行登錄。