ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kibana No results match your search criteria

2021-02-09 15:34:15  阅读:916  来源: 互联网

标签:index search No results allocation cluster 水位 routing disk


ELK突然没有数据提示No results match your search criteria的两种可能的结果

ELK正常使用,突然某天Kibana没有数据了。提示:No results match your search criteria。

1、首先进行系统管理-Kibana-索引模式-刷新字段列表尝试,发现提示:[FORBIDDEN/12/index read-only / allow delete (api)] – read only elasticsearch indices

经过尝试,执行一下代码好使:

  PUT _settings
    {
    "index": {
    "blocks": {
    "read_only_allow_delete": "false"
    }
    }
    }
   PUT your_index_name/_settings
    {
    "index": {
    "blocks": {
    "read_only_allow_delete": "false"
    }
    }
    }

查询发现,配置read_only_allow_delete: false只是关闭只读模式而已。而导致只读模式的原因则是因为磁盘空间不足导致的。查看Monitoring,发现空间还剩余5%。而ELK的洪水水位线,默认为95%,当使用率达到这个值,ES会将对应的索引设为只读.这是最后一个保护措施.只读状态必须在有了足够空间后人工解除.

所以,需要可通过后台的console,DELETE部分无用数据。

2、还有一种情况就是kibana创建index patterns的时候。你的kibana的index是模糊匹配多个es的index,但是多个es的index的字段类型不完全相同,这样就会造成字段被赋予多个类型,然后kibana报错了。

ElasticSearch根据磁盘分配Shard策略

ElasticSearch会根据当前Node的剩余空间决定是否再往这个Node分配Shard或者将这个Node的Shard迁移到其他Node

启用

可以在elasticsearch.yml中或使用cluster-update-settings API配置下面的参数

cluster.routing.allocation.disk.threshold_enabled

是否启动根据磁盘空间自动分配,默认为true

低水位线

cluster.routing.allocation.disk.watermark.low

磁盘使用的最低水位线,默认为85%,到了这个值,ES不会再分配新的Shard到这个Node.也可以设置为一个绝对空间大小,如500mb,表示允许的最小的剩余空间.这个值对新创建的索引的primary shard无效,特别要注意的是,这个值对从未分配过的Shard也无效.

高水位线

cluster.routing.allocation.disk.watermark.high

磁盘高水位线,默认为90%,当使用率超过这个值,ES会把这个node上的shard转移到其他node.这个值也同样可以设置为一个绝对值,表示最大允许的剩余空间,这个这对所有shard生效,这里有别于前一个配置.

洪水线

cluster.routing.allocation.disk.watermark.flood_stage

洪水水位线,默认为95%,当使用率达到这个值,ES会将对应的索引设为只读.这是最后一个保护措施.只读状态必须在有了足够空间后人工解除.

注意: 你可以混合使用百分比和绝对值水位线,但是不建议这么用,因为你经常无法判断这些值是否产生冲突(比如,高水位线比洪水线还高).

退出只读模式

PUT /twitter/_settings
{
  "index.blocks.read_only_allow_delete": null
}

磁盘检查周期

cluster.info.update.interval

ES检查磁盘使用率的频率,默认30s

一种特殊情况

cluster.routing.allocation.disk.include_relocations

默认为true,计算磁盘使用量时,是否把当前正在分配的shard所占用空间考虑在内,如果不考虑这部分空间,就会把这些空间计算在内,磁盘使用会被高估,显而易见.

注意: 使用百分比时表示使用空间,而使用绝对值时表示剩余空间,看起来比较令人困惑,但是也没有更好的办法.

实例

更新低水位线到100GB剩余空间,高水位线设为50GB,洪水线设为10GB,1分钟更新一次状态.

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "100gb",
    "cluster.routing.allocation.disk.watermark.high": "50gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
    "cluster.info.update.interval": "1m"
  }
}

标签:index,search,No,results,allocation,cluster,水位,routing,disk
来源: https://www.cnblogs.com/ainimore/p/14393110.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有