kibana No results match your search criteria


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"
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM