使用非嵌入式数据库时,SonarQube 无法在 Ubuntu 上运行。 (弹性搜索无法启动)
Posted
技术标签:
【中文标题】使用非嵌入式数据库时,SonarQube 无法在 Ubuntu 上运行。 (弹性搜索无法启动)【英文标题】:SonarQube not able to run with Ubuntu when using non embedded database. (elastic search failed to start) 【发布时间】:2020-02-24 05:31:35 【问题描述】:我尝试在运行 Ubuntu 18.04 (JDK 11) 的 Ubuntu 机器上设置 SonarQube 8 和 8.1。 我面临一个最有可能与 ElasticSearch 相关的特定问题。每当我尝试使用 sonar.sh start 命令启动 SonarQube 时,它都会失败并在 es.log 和 sonar.log 中出现以下错误
ERROR: [1] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
在此处发布之前,我尝试了多种方法,但没有一种方法可以帮助我解决此问题。我尝试过的东西如下。
尝试在 /etc/security/limits.conf 中设置值
user - nofile 65535
尝试在 /etc/sysctl.conf 中设置值
vm.max_map_count=262144
fs.file-max=65536
即使更改了这些系统文件后,我也无法启动 SonarQube,每次我总是遇到上述相同的错误。
请注意:
这只发生在我尝试将 SonarQube 与外部数据库一起使用时,它与嵌入式 H2 数据库完全兼容,但每当我启用任何外部数据库(尝试了 MSSQL 和 Postgres)时,我都会遇到同样的问题。
【问题讨论】:
是否有您关注的文档,以便我们可以重现问题和帮助 我用这个文档安装docs.sonarqube.org/latest/setup/install-server 【参考方案1】:经过一番搜索,最后我发现在 Ubuntu 中,您需要在 /etc/systemd/system.conf
和 /etc/systemd/user.conf
中添加以下行以更改默认打开文件限制。
要添加的行
DefaultLimitNOFILE=65536
【讨论】:
以上是关于使用非嵌入式数据库时,SonarQube 无法在 Ubuntu 上运行。 (弹性搜索无法启动)的主要内容,如果未能解决你的问题,请参考以下文章