Sonar8.3.1降级到7.8

本文记录了从SonarQube 8.3.1降级到7.8的过程,包括遇到的Java版本不兼容、root用户运行限制以及虚拟内存不足等错误。通过更换Java版本、创建非root用户和调整系统参数,最终成功启动SonarQube 7.8。

参考

https://docs.sonarqube.org/7.8/setup/get-started-2-minutes/

https://www.jianshu.com/p/9799871b5e18

 

下载

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.3.1.34397.zip
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip

 

启动 

/usr/local/sonarqube/bin/linux-x86-64/sonar.sh console

Running SonarQube...
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    | 
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11 to run
jvm 1    | java.lang.IllegalStateException: SonarQube requires Java 11 to run
jvm 1    |      at com.google.common.base.Preconditions.checkState(Preconditions.java:508)
jvm 1    |      at org.sonar.application.App.checkJavaVersion(App.java:94)
jvm 1    |      at org.sonar.application.App.start(App.java:57)
jvm 1    |      at org.sonar.application.App.main(App.java:98)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
wrapper  | <-- Wrapper Stopped

分析:sonar 8.x 都是JDK11,本地现在是JDK8,重新下载7.8来安装

 

修改配置

sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://172.18.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

再次启动报错

Running SonarQube...

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.05.21 10:53:20 WARN  app[][o.s.application.App] SonarQube will require Java 11+ starting on next version

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/temp

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/elasticsearch]: /usr/local/sonarqube/elasticsearch/bin/elasticsearch

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.e.p.PluginsService] no modules loaded

jvm 1    | 2020.05.21 10:53:20 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]

jvm 1    | 2020.05.21 10:53:23 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1

jvm 1    | 2020.05.21 10:53:23 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped

jvm 1    | 2020.05.21 10:53:23 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

wrapper  | <-- Wrapper Stopped

分析:看样子是es的问题,再去检查es日志

2020.05.21 10:53:23 ERROR es[][o.e.b.Bootstrap] Exception

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

at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) [elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) [elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) [elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) [elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) [elasticsearch-6.8.0.jar:6.8.0]

2020.05.21 10:53:23 WARN  es[][o.e.b.ElasticsearchUncaughtExceptionHandler] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.8.0.jar:6.8.0]

at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.8.0.jar:6.8.0]

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

at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.8.0.jar:6.8.0]

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.8.0.jar:6.8.0]

... 6 more

分析:root用户不能运行es,所以我们增加一个sonar用户,并将目录权限给到sonar用户,切换到sonar再次启动

Running SonarQube...

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.05.21 11:07:40 WARN  app[][o.s.application.App] SonarQube will require Java 11+ starting on next version

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/temp

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/elasticsearch]: /usr/local/sonarqube/elasticsearch/bin/elasticsearch

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.e.p.PluginsService] no modules loaded

jvm 1    | 2020.05.21 11:07:40 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]

jvm 1    | ERROR: [1] bootstrap checks failed

jvm 1    | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

jvm 1    | 2020.05.21 11:07:47 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 78

jvm 1    | 2020.05.21 11:07:47 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped

jvm 1    | 2020.05.21 11:07:47 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped

wrapper  | <-- Wrapper Stopped

分析:虚拟内存太小,需要增加到262144,后再次启动

# 永久生效
echo "vm.max_map_count=262144" >/etc/sysctl.conf

# 临时生效
sysctl -w vm.max_map_count=262144

# 查看结果
sysctl -a|grep vm.max_map_count

 

启动成功

Running SonarQube...

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.05.21 11:15:37 WARN  app[][o.s.application.App] SonarQube will require Java 11+ starting on next version

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/temp

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/elasticsearch]: /usr/local/sonarqube/elasticsearch/bin/elasticsearch

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.e.p.PluginsService] no modules loaded

jvm 1    | 2020.05.21 11:15:37 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]

jvm 1    | 2020.05.21 11:15:49 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up

jvm 1    | 2020.05.21 11:15:49 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/usr/local/sonarqube]: /usr/local/java/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/usr/local/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /usr/local/sonarqube/temp/sq-process3065810337102632640properties

jvm 1    | 2020.05.21 11:16:51 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up

jvm 1    | 2020.05.21 11:16:51 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/usr/local/sonarqube]: /usr/local/java/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/usr/local/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.ce.app.CeServer /usr/local/sonarqube/temp/sq-process5288721163571462535properties

jvm 1    | 2020.05.21 11:16:56 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up

jvm 1    | 2020.05.21 11:16:56 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

 

登陆

地址:http://localhost:9000,初始密码:admin/admin

创建一个项目

 

 

分析你的项目

 

生成maven命令

复制maven命令在idea中执行即可,然后在控制台查看检查结果

 

完成

### 回答1Sonar 7.8是一款功能强大的音频录音和混音软件,它提供了许多专业级的工具和功能,可以帮助音频制作人和音乐制作人创建高质量的音频作品。 要下载Sonar 7.8,您可以按照以下步骤进行操作: 1. 打开您的电脑浏览器,并搜索“Sonar 7.8下载”或访问Cakewalk的官方网站。 2. 浏览Cakewalk的官方网站,找到Sonar 7.8的下载页面。 3. 确保您的计算机系统满足Sonar 7.8的系统要求。Sonar 7.8通常需要较高的处理能力和内存要求。 4. 单击下载按钮或链接,开始下载Sonar 7.8安装程序。 5. 选择适合您计算机系统的安装程序版本,可以是32位或64位,然后保存安装程序到您的计算机中。 6. 双击安装程序,按照指示完成Sonar 7.8的安装过程。确保您已经阅读并同意最终用户许可协议。 7. 完成安装后,您可以打开Sonar 7.8,并注册或登录到您的Cakewalk帐户。 8. 接下来,您可以根据您的需求和喜好,开始使用Sonar 7.8进行录音、编辑、混音和制作音频作品。 总之,要下载Sonar 7.8,您可以通过访问Cakewalk的官方网站,下载适合您计算机系统的安装程序,并按照安装指示完成安装过程。一旦安装完成,您就可以开始使用Sonar 7.8来创建高质量的音频作品。 ### 回答2: Sonar 7.8是一款音频编辑和录音软件。如果您想要下载Sonar 7.8,可以按照以下步骤进行操作。 首先,您可以在互联网上搜索Sonar 7.8的下载链接。许多软件下载网站都会提供Sonar 7.8的下载链接,您只需点击链接即可开始下载。 另外,您还可以访问Cakewalk(Sonar的开发公司)的官方网站,查找Sonar 7.8的下载选项。在官方网站上,您可以找到最新的Sonar版本以及其他相关软件和资源。 在下载之前,建议您确保您的计算机系统满足Sonar 7.8的最低系统要求。这包括操作系统版本、处理器速度、内存容量等。如果您的计算机不满足要求,可能无法正常安装和运行Sonar 7.8。 当您找到适合的下载链接后,点击下载按钮即可开始下载Sonar 7.8的安装文件。下载的速度将取决于您的网络连接。 一旦下载完成,您可以找到安装文件并双击打开它。跟随安装向导的指示,选择适当的安装选项和目录。一般而言,您可以选择默认安装设置,但也可以根据自己的需求进行自定义设置。 安装完成后,您可以在计算机上找到Sonar 7.8的快捷方式或图标。双击打开软件,开始使用Sonar 7.8进行音频编辑和录音。 总之,通过搜索下载链接、访问官方网站并遵循安装向导的指示,您可以轻松地下载和安装Sonar 7.8。希望这些步骤对您有所帮助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值