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进行登录。
--------------------- 
作者:月未明 
版权声明:本文为博主原创文章,转载请附上博文链接!