我正在尝试在磁盘空间约为2TB,但可用空间仅为约50G的服务器上运行SonarQube。当尝试使用官方手册中的docker时(没什么特别的),elasticsearch会失败,并显示一条关于只读索引的消息。据我所知,发生这种情况是因为它达到了flood_stage
水印,默认情况下设置为95%。我非常确定我们可以将这个水印(和所有其他水印)设置为非百分比的较小值,但我似乎找不到嵌入式elasticsearch正在使用的配置文件。我尝试过/opt/sonarqube/conf/elasticsearch.yml
(它不存在,需要创建它)和/opt/sonarqube/elasticsearch/config/elasticsearch.yml
,它包含默认的elasticsearch配置。
即使在将完整的非yml乱码写入这些文件时,elasticsearch也会失败,并返回相同的错误,因此我非常确定这些文件不是正在使用的文件。我还试图搜索文档,但它包含的关于此行为的唯一提示似乎是“增加磁盘空间,并删除所有索引”。那么,我应该使用哪些文件来配置embedded elasticsearch?
更新:我们最终修补了/opt/sonarqube/elasticsearch/bin/elasticsearch
启动脚本,以便在动态生成的配置(位于/opt/sonarqube/temp/conf/es/elasticsearch.yml
btw中)中插入额外的行。这不是一个干净的解决方案,但考虑到sonarqube如何动态生成配置,这似乎是最简单的。
发布于 2019-07-27 14:20:28
对于更改水印设置,可以使用动态集群更新设置:https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html
对于水印,如下所示:
curl -s -XPUT 'localhost:9200/_cluster/settings?pretty' -d '
{
"persistent" : {
"cluster.routing.allocation.disk.watermark.flood_stage" : "99%"
}
}'
https://stackoverflow.com/questions/57227388
复制相似问题