SonarQube安装遇到的常见报错问题启动不起来等

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: SonarQube安装遇到的常见报错问题启动不起来等

1、启动时日志中提示

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

错误原因:因为安全问题elasticsearch 不让用root用户直接运行

解决方法:liunx创建新用户sonar,使用该用户(sonar)运行sonar即可。

步骤:

1、创建用户

[root@localhost ~]# adduser sonar

2、设置密码,输入两次密码

[root@localhost ~]# passwd sonar

3、进入到sonarqube目录的上一级更改sonarqube-XXX目录的用户组为sonar

[root@localhost opt]# chown -R sonar:sonar sonarqube-XXX

4、重新启动sonar,要使用新建的用户启动

su sonar

./sonar.sh restart

2、启动时提示端口占用

org.elasticsearch.bootstrap.StartupException: BindTransportException[Failed to bind to [9001]]; nested: BindException[Address already in use];

Caused by: java.net.BindException: Address already in use

原因:sonarqube需要使用9000端口,elasticsearch使用的是9001端口,但是其他程序把9001端口占用了

解决:修改sonar.properties文件的ES端口,或者将其他占用该端口的程序的端口修改为8082

3、修改完上面的问题后启动提示:没有权限

Caused by: java.io.IOException: Cannot run program "/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64/bin/java" (in directory "/opt/sonarqube-XXX"): error=13, Permission denied

解决:修改目录权限

chmod 777 /usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64/bin/java

再次启动,没有报错

4、报错:ERROR: Please provide compiled classes of your project with sonar.java.binaries property

原因:最新版本的sonarQube6.5以上的版本只能扫描class文件

解决:新版本的需要在项目根目录下的sonar-project.properties文件新增属性sonar.java.binaries

指定class编译路径

# must be unique in a given SonarQube instance

sonar.projectKey=cynomys:0.0.1

# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.

sonar.projectName=cynomys

sonar.projectVersion=0.0.1


# Path is relative to the sonar-project.properties file. Replace "" by "/" on Windows.

# This property is optional if sonar.modules is set.

sonar.sources=.

sonar.exclusions=**/test/**,**/target/**


# Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

sonar.java.binaries=/root/.jenkins/workspace/e-content/e-content-controller/target/classes

5、运行一段时间后服务挂掉或者启动不起来

wrapper  | --> Wrapper Started as Console

wrapper  | Launching a JVM...

jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

jvm 1    |

jvm 1    | 2020.09.14 23:51:49 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-8.4.2.36762/temp

jvm 1    | 2020.09.14 23:51:49 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

jvm 1    | 2020.09.14 23:51:49 ERROR app[][o.s.a.p.ManagedProcessHandler] Fail to launch process [es]

jvm 1    | java.lang.IllegalStateException: Cannot write Elasticsearch yml settings file

jvm 1    |  at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:53)

jvm 1    |  at org.sonar.application.ProcessLauncherImpl.writeConfFiles(ProcessLauncherImpl.java:151)

jvm 1    |  at org.sonar.application.ProcessLauncherImpl.launch(ProcessLauncherImpl.java:84)

jvm 1    |  at org.sonar.application.SchedulerImpl.lambda$tryToStartProcess$2(SchedulerImpl.java:196)

jvm 1    |  at org.sonar.application.process.ManagedProcessHandler.start(ManagedProcessHandler.java:73)

jvm 1    |  at org.sonar.application.SchedulerImpl.tryToStartProcess(SchedulerImpl.java:194)

jvm 1    |  at org.sonar.application.SchedulerImpl.tryToStartEs(SchedulerImpl.java:146)

jvm 1    |  at org.sonar.application.SchedulerImpl.tryToStartAll(SchedulerImpl.java:138)

jvm 1    |  at org.sonar.application.SchedulerImpl.schedule(SchedulerImpl.java:112)

jvm 1    |  at org.sonar.application.App.start(App.java:69)

jvm 1    |  at org.sonar.application.App.main(App.java:98)

jvm 1    |  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

jvm 1    |  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

jvm 1    |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

jvm 1    |  at java.base/java.lang.reflect.Method.invoke(Method.java:566)

jvm 1    |  at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)

jvm 1    |  at java.base/java.lang.Thread.run(Thread.java:834)

jvm 1    | Caused by: java.nio.file.AccessDeniedException: /opt/sonarqube-8.4.2.36762/temp/conf/es/elasticsearch.yml

jvm 1    |  at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)

jvm 1    |  at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)

提示这个文件访问没有权限:Caused by: java.nio.file.AccessDeniedException: /opt/sonarqube-8.4.2.36762/temp/conf/es/elasticsearch.yml

原来是之前可能不小心用root启动过会创建temp目录,该目录为root用户所有,当使用自己创建的sonar用户启动时就会报错,

解决:

修改此目录的所属用户组(我一般就让整个sonarqube-8.4.2.36762文件夹都具有权限,这句命令要用root用户执行,再切换到sonar用户启动sonar就可以啦)

chown -R sonar:sonar /opt/sonarqube-8.4.2.36762/temp



6、启动失败,es只读

排查web.log日志,发现ES写索引异常,报错ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

es进入“只读”模式,只允许删除。

ES说明文档中有写明,当ES数据所在目录磁盘空间使用率超过90%后,ES将修改为只读状态,不允许写入

解决:查看自己电脑上sonarqube所在目录的磁盘空间,发现果然已经超过90%了,清理磁盘空间后再进行分析,结果就显示的成功

 

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
关系型数据库 MySQL Linux
SonarQube启动不了的问题解决
SonarQube启动不了的问题解决
SonarQube启动不了的问题解决
|
11月前
|
应用服务中间件 Android开发
Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
|
5月前
|
Java 应用服务中间件 Shell
Tomcat 安装配置教程及成功后,启动失败报错解决方案
Tomcat 安装配置教程及成功后,启动失败报错解决方案
105 0
|
5月前
|
关系型数据库 MySQL Linux
Azkaban【部署 02】CentOS release 7.5安装配置azkaban-3.70.0安装阶段(含已编译的10个安装文件:可直接进行安装)
【2月更文挑战第5天】CentOS release 7.5安装配置azkaban-3.70.0安装阶段(含已编译的10个安装文件:可直接进行安装)
88 7
|
5月前
|
jenkins 持续交付
安装Jenkins并启动
安装Jenkins并启动
37 0
|
Java Shell Linux
Linux安装sonarqube(含各种错误处理)
1.下载安装 下载地址: Download | SonarQube | Sonar (下载页面向下拉)选择稳定版本下载。
267 0
|
Java jenkins Shell
Jenkins 实现自动打包并且启动服务| 学习笔记
快速学习 Jenkins 实现自动打包并且启动服务。
366 0
Jenkins 实现自动打包并且启动服务| 学习笔记
|
Android开发 前端开发
|
安全 Java Linux
SonarQube的安装和使用
SonarQube®是一款自动代码审查工具,可以检测代码中的bug、漏洞和代码气味。它可以与您现有的工作流集成,以支持跨项目分支和拉出请求的持续代码检查。 就是一个痛苦面具…… 哈哈,根据该工具定义的规则,对代码进行扫描~ 有这五种严重性和三种类型
317 0