我刚刚在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_filter
和sonar.properties
属性的自然(未记录)方式,但它不起作用。
答案 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 seccomp
检查可能不是致命的(即只是警告)最后但同样重要的是,这里的黄金路径显然是遵循要求(即在您的操作系统上有seccomp
),即使这涉及升级到更新的Linux内核。并且总结一下:我们已经编辑SonarQube Requirements以透明地分享这种情况。