使用非嵌入式数据库时,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 上运行。 (弹性搜索无法启动)的主要内容,如果未能解决你的问题,请参考以下文章

带有嵌入式数据库的Sonarqube 6.7版的安全率更新

将Sonarqube从嵌入式H2切换到支持的数据库

SonarQube无法插入MySql数据库

无法使用 Postgresql 将 JDBC 连接到 sonarqube

SonarQube 扫描仪:使用非默认 Java

SonarQube 无法启动 Windows 10