Centos7安装SonarQube常见问题

Centos7安装SonarQube常见问题

前言:SonarQube的不同版本对于jdk的要求是不一样的,所以在安装之前一定要检查所依赖的jdk的版本,具体版本要求官网上都有相应说明:版本要求。本文所使用的是6.7.7,对应jdk的版本至少1.8以上。

  SonarQube安装完成首次启动会有三个日志,基本上大部分的错误都可以通过查看这三个日志来进行定位解决。日志都在${安装目录}/logs/,分别为es.log、sonar.log、web.log。

一、sonar.log报错

--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2021.07.23 19:44:55 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonar/temp
2021.07.23 19:44:55 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2021.07.23 19:44:55 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonar/elasticsearch]: /usr/local/sonar/elasticsearch/bin/elasticsearch -Epath.conf=/usr/local/sonar/temp/conf/es
2021.07.23 19:44:55 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2021.07.23 19:44:56 INFO  app[][o.e.p.PluginsService] no modules loaded
2021.07.23 19:44:56 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2021.07.23 19:45:01 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2021.07.23 19:45:01 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/usr/local/sonar]: /usr/local/java/jdk/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonar/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server/*:/usr/local/sonar/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer /usr/local/sonar/temp/sq-process5726226050697102407properties
2021.07.23 19:45:02 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2021.07.23 19:45:02 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
2021.07.23 19:45:02 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2021.07.23 19:45:02 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
<-- Wrapper Stopped

乍一看上述日志表明未启动成功的原因的是由于es没有启动起来。但是其中有一句日志是Process[es] is up,表示es已经起来了。导致其未正确启动的原因肯定是其他原因导致的。接着查看web.log。

二、web.log报错

2021.07.23 19:45:02 INFO  web[][o.s.p.ProcessEntryPoint] Starting web
2021.07.23 19:45:02 WARN  web[][o.s.p.ProcessEntryPoint] Fail to start web
java.lang.RuntimeException: org.apache.catalina.LifecycleException: Failed to initialize component [StandardServer[-1]]
        at com.google.common.base.Throwables.propagate(Throwables.java:160)
        at org.sonar.server.app.EmbeddedTomcat.start(EmbeddedTomcat.java:64)
        at org.sonar.server.app.WebServer.start(WebServer.java:51)
        at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:113)
        at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:100)
        at org.sonar.server.app.WebServer.main(WebServer.java:91)
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [StandardServer[-1]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:427)
        at org.sonar.server.app.EmbeddedTomcat.start(EmbeddedTomcat.java:61)
        ... 4 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [StandardService[Tomcat]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:875)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
        ... 7 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to initialize connector [Connector[HTTP/1.1-9090]]
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
        ... 9 common frames omitted

查看web.log,发现web应用确实没有正确启动,但是通过上边的日志看不出未启动的原因。所以继续排查es.log。

三、es.log

2021.07.23 19:44:56 INFO  es[][o.e.n.Node] initializing ...
2021.07.23 19:44:57 INFO  es[][o.e.e.NodeEnvironment] using [1] data paths, mounts [[/ (/dev/mapper/centos-root)]], net usable_space [19.6gb], net total_space [35.1gb], spins? [possibly], types [xfs]
2021.07.23 19:44:57 INFO  es[][o.e.e.NodeEnvironment] heap size [495.3mb], compressed ordinary object pointers [true]
2021.07.23 19:44:57 INFO  es[][o.e.n.Node] node name [sonarqube], node ID [rEnIAfvYSmKQLykaHjtXcQ]
2021.07.23 19:44:57 INFO  es[][o.e.n.Node] version[5.6.3], pid[9211], build[1a2f265/2017-10-06T20:33:39.012Z], OS[Linux/3.10.0-1160.25.1.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_291/25.291-b10]
2021.07.23 19:44:57 INFO  es[][o.e.n.Node] JVM arguments [-XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -Xms512m, -Xmx512m, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/usr/local/sonar/elasticsearch]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [aggs-matrix-stats]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [ingest-common]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [parent-join]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [percolator]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [reindex]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] loaded module [transport-netty4]
2021.07.23 19:44:57 INFO  es[][o.e.p.PluginsService] no plugins loaded
2021.07.23 19:44:58 INFO  es[][o.e.d.DiscoveryModule] using discovery type [zen]
2021.07.23 19:44:58 INFO  es[][o.e.n.Node] initialized
2021.07.23 19:44:58 INFO  es[][o.e.n.Node] starting ...
2021.07.23 19:44:58 INFO  es[][o.e.t.TransportService] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001}
2021.07.23 19:45:01 INFO  es[][o.e.c.s.ClusterService] new_master {sonarqube}{rEnIAfvYSmKQLykaHjtXcQ}{qsaqs08BTLKfDGdVNf-DwA}{127.0.0.1}{127.0.0.1:9001}{rack_id=sonarqube}, reason: zen-disco-elected-as-master ([0] nodes joined)
2021.07.23 19:45:01 INFO  es[][o.e.n.Node] started
2021.07.23 19:45:01 INFO  es[][o.e.g.GatewayService] recovered [0] indices into cluster_state
2021.07.23 19:45:02 INFO  es[][o.e.n.Node] stopping ...
2021.07.23 19:45:02 INFO  es[][o.e.n.Node] stopped
2021.07.23 19:45:02 INFO  es[][o.e.n.Node] closing ...
2021.07.23 19:45:02 INFO  es[][o.e.n.Node] closed

es.log没有明确的错误信息表明失败的原因。排查到这就很郁闷了,在网上也查了很多的资料,没有关于这个说明。最后还是回到web.log日志上,既然web启动不了,那肯定是tomcat的问题,tomcat启动起不来那肯定有几个原因:

  • 1、web服务的jar包有问题(这显然是不可能的,安装包是从官网下载的)
  • 2、端口冲突,导致web服务不能启动
  • 3、服务器内存过载,导致服务不能启动
    1和3经过排查都排除,剩下就省2了。查看服务器上web启动的端口9090
[root@Server01 sonar]# netstat -ano | grep 9090
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:9090          127.0.0.1:46666         ESTABLISHED keepalive (2.42/0/0)
tcp        0      0 127.0.0.1:46666         127.0.0.1:9090          ESTABLISHED keepalive (2.42/0/0)

查到这就明了了,随便给sonar配置了一个就中标了,运气真是好到爆。再次修改sonar的端口,启动服务,正常启动~。

四、常见问题

4.1 不能用root账户启动,需要给sonar创建一个普通账户,并用su去启动
4.2 系统参数问题
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

根据官网要求,系统所需的最小系统参数。

sysctl -w fs.file-max=65536
sysctl -w vm.max_map_count=262144
ulimit -n 65536
ulimit -u 2048
4.3 数据连接问题

报数据库连接没有权限之类的问题,可以给连接的数据授予权限即可。

grant all on . to ‘sonar’@‘192.168.168.%’ identified by123456;
4.4 es内存溢出问题

es配置的内存为2g,所以如果虚拟机可用的空闲内存少于2g的话,可能导致es起不来。加大虚拟机内存即可正常启动。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zerooooooooooooooooo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值