欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ElasticSearch突然采集不到日志問題解決分析

 更新時間:2023年04月13日 11:29:53   作者:爛筆頭  
這篇文章主要為大家介紹了ElasticSearch突然采集不到日志問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

0-前言

組內(nèi)同學(xué)反饋,kibana上最新的k8s日志看不到了。由于我們是采用elk(elastic search+logstash+kibana)的方式下部署日志采集系統(tǒng),其中l(wèi)ogstash以Deamonset方式部署到k8s的每一個node節(jié)點上,先去查看logstash的pod日志,發(fā)現(xiàn):

"reason": "Validation Failed: 1: this action would add [2] shards, but this cluster currently has [999]/[1000] maximum normal shards open;"

可以看到,出錯關(guān)鍵詞是:maximum normal shards open.

1-解決

查閱資料發(fā)現(xiàn),ES7版本以上,默認(rèn)的最大分片數(shù)是1000, 所以最直接的解決方案就是增大ES的maximum shards:

PUT /_cluster/settings
{
  "transient": {
    "cluster": {
      "max_shards_per_node":10000 # 這里可以修改
    }
  }
}

經(jīng)過測試,kibana上可以重新展示最新的log信息。

2-延展

雖然現(xiàn)象問題解決了,但是本質(zhì)問題依舊存在。

思考幾個問題:

  • shard能達(dá)到1000,那未來是不是會到達(dá)10000,導(dǎo)致出現(xiàn)同樣的問題?
  • 為了避免這樣的問題再次出現(xiàn),那就要控制shard的數(shù)量,那么shard的數(shù)量和什么有關(guān)系?
  • 如何控制shard的數(shù)量?

首先,回答第一個問題,先要搞清楚,什么是shard?

  • 分片是 Elasticsearch 在集群中分發(fā)數(shù)據(jù)的關(guān)鍵。
  • 把分片想象成數(shù)據(jù)的容器。文檔存儲在分片中,然后分片分配到集群中的節(jié)點上。當(dāng)集群擴(kuò)容或縮小,Elasticsearch 將會自動在節(jié)點間遷移分片,以使集群保持平衡。
  • 一個分片(shard)是一個最小級別“工作單元(worker unit)”,它只是保存了索引中所有數(shù)據(jù)的一部分。
  • 這類似于 MySql 的分庫分表,只不過 Mysql 分庫分表需要借助第三方組件而 ES 內(nèi)部自身實現(xiàn)了此功能。
  • 默認(rèn)情況下,一個索引被分配 5 個主分片

可以看到,分片的數(shù)量和索引的數(shù)量是成正比的,也就是說索引越多,分片越多;再結(jié)合我們ES的實際配置,索引命名方式:環(huán)境+日期,環(huán)境是固定的,但是日期是每天增加的,那么索引每天都會增加,也就是說分片的數(shù)量也會隨著時間推移,逐日增加,直到達(dá)到最大索引。

所以,針對第一個問題,即使最大分片數(shù)是10000,也會出現(xiàn)同樣的問題。

那么如何控制shard數(shù)量呢?

其實控制shard數(shù)量,就是控制索引的數(shù)量,控制索引的數(shù)量,就是控制保存的log的數(shù)量,而log的數(shù)量可以通過控制保存的日志有效期天數(shù)來決定。

那么,問題轉(zhuǎn)換為:ES如何只保存固定時間段內(nèi)的日志數(shù)據(jù)?

兩個方案:

  • 通過API接口調(diào)用
curl -H "Content-Type: application/json" -X POST -d '{"query":{"range":{"@timestamp":{"lt":"now-7d","format":"epoch_millis"}}}}'  http://localhost:9200/*/_delete_by_query?conflicts=proceed
 # 這里根據(jù)默認(rèn)的時間來作為查詢的時    間字段,也可以是自定義的, now-7d保留7天的數(shù)據(jù)
  • 通過ES官網(wǎng)工具curator

編寫action.yml

actions:
  1:
    action: delete_indices
    description: "delete index expire date"
    options:
      ignore_empty_list: True
      timeout_override:
      disable_action: False
    filters:
    - filtertype: age
      source: name
      direction: older
      unit: days # 可選days,weeks,months
      unit_count: 60 #保留最近60天
      timestring: '%Y.%m.%d' #這里是跟在索引logstash-后面的時間的格式

加入到crontab定時器即可。

以上就是ElasticSearch突然采集不到日志問題解決分析的詳細(xì)內(nèi)容,更多關(guān)于ElasticSearch采集不到日志的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實現(xiàn)學(xué)生成績輸出到磁盤文件的方法詳解

    Java實現(xiàn)學(xué)生成績輸出到磁盤文件的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實現(xiàn)將學(xué)生成績輸出到磁盤文件的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • java讀寫串口數(shù)據(jù)你了解多少

    java讀寫串口數(shù)據(jù)你了解多少

    這篇文章主要為大家詳細(xì)介紹了java讀寫串口數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • SpringBoot中加密模塊的使用

    SpringBoot中加密模塊的使用

    本文主要介紹了SpringBoot中加密模塊的使用,包括對稱加密、非對稱加密和哈希加密等,同時還會提供相應(yīng)的代碼示例,感興趣的朋友可以參考一下
    2023-05-05
  • 詳解spring boot實現(xiàn)多數(shù)據(jù)源代碼實戰(zhàn)

    詳解spring boot實現(xiàn)多數(shù)據(jù)源代碼實戰(zhàn)

    本篇文章主要介紹了詳解spring boot實現(xiàn)多數(shù)據(jù)源代碼實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 從源碼角度看spring mvc的請求處理過程

    從源碼角度看spring mvc的請求處理過程

    這篇文章主要介紹了從源碼角度看spring mvc的請求處理過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • 一次線上websocket返回400問題排查的實戰(zhàn)記錄

    一次線上websocket返回400問題排查的實戰(zhàn)記錄

    最近項目中有端對端通信場景,實時性要求較高,考慮后選用了websocket 這一通信協(xié)議,下面這篇文章主要給大家介紹了一次線上websocket返回400問題排查的實戰(zhàn)記錄,需要的朋友可以參考下
    2022-04-04
  • SpringCloud Gateway的路由,過濾器和限流解讀

    SpringCloud Gateway的路由,過濾器和限流解讀

    這篇文章主要介紹了SpringCloud Gateway的路由,過濾器和限流解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java?數(shù)組實現(xiàn)學(xué)生成績統(tǒng)計教程

    java?數(shù)組實現(xiàn)學(xué)生成績統(tǒng)計教程

    這篇文章主要介紹了java?數(shù)組實現(xiàn)學(xué)生成績統(tǒng)計教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java和c語言隨機(jī)數(shù)Random代碼詳細(xì)

    Java和c語言隨機(jī)數(shù)Random代碼詳細(xì)

    這篇文章主要介紹Java和c語言得隨機(jī)數(shù)Random,隨機(jī)數(shù)的用處在生活中比較少見,但是用處并不少,比如一些小游戲的制作等等。下面我們就一起來學(xué)習(xí)這篇關(guān)于Java和c隨機(jī)數(shù)Random得文章吧
    2021-10-10
  • Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    這篇文章主要為大家介紹了Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論