SonarQube 6.7无法启动,因为CONFIG_SECCOMP未编译到内核

时间:2017-11-09 19:44:55

标签: elasticsearch sonarqube

我刚刚在CentOS 6盒子中将SonarQube从6.0升级到6.7 LTS,并注意到ElasticSearch(ES)无法启动,因为内核(2.6.32-696.3.1.el6.x86_64)没有有seccomp可用。

这已在System call filter check正式记录,对于没有此功能的系统,正确的解决方法是在bootstrap.system_call_filter中将elasticsearch.yml配置为false。

这里的问题是因为Sonar在启动时创建ES配置,在$SONAR_HOME/temp/conf/es/elasticsearch.yml中写入,但我还没有找到设置bootstrap.system_call_filter属性的方法。

我尝试了在sonar.search.bootstrap.system_call_filter中引入bootstrap.system_call_filtersonar.properties属性的自然(未记录)方式,但它不起作用。

4 个答案:

答案 0 :(得分:6)

我们遇到了同样的问题。起初我们使用了上面的解决方案但是在github上的声纳代码中搜索后找到了这个设置的位置:

编辑sonar.properties文件并更改以下行:

#sonar.search.javaAdditionalOpts=

sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false

答案 1 :(得分:0)

你真的可以欺骗和编辑/${SONAR_HOME}/elasticsearch/bin/elasticsearch

添加

echo "bootstrap.system_call_filter = 'false'" >> 
/${SONAR_HOME}/temp/conf/es/elasticsearch.yml

在设置“妖魔化”变量之前。

答案 2 :(得分:0)

嗨我试图回复bootstrap.system_call_filter:'false'到temp / conf / es / elasticsearch.yml,我看到该文件中的行,但是在centos6上启动sonarqube 6.7时出现了相同的错误。

有人测试成功吗?

答案 3 :(得分:0)

首先:不要尝试更新elasticsearch.yml。 SonarQube自我管理其ElasticSearch组件配置,因此任何手动干预的尝试都是有害的。 (提醒:为了操作SonarQube,唯一需要修改的配置文件是sonar.properties

关于seccomp组件更有趣:

  • seccomp要求确实来自underlying ElasticSearch requirement,并且过渡性地适用于操作SonarQube
  • 如果您使用默认配置在本地运行SonarQube(具体为:默认 sonar.search.host ),则seccomp检查可能不是致命的(即只是警告)
  • 如果你覆盖了 sonar.search.host ,那么你应该首先想到的是:ElasticSearch JVM是否真的需要监听除环回之外的其他接口? (知道SonarQube在本地使用ES,但数据中心版除外)。如果没有好的答案,那么请将 sonar.search.host 保留为默认值。

最后但同样重要的是,这里的黄金路径显然是遵循要求(即在您的操作系统上有seccomp),即使这涉及升级到更新的Linux内核。并且总结一下:我们已经编辑SonarQube Requirements以透明地分享这种情况。