FIlebeat 的可優化配置整理

2021-10-03 07:31:35 字數 4333 閱讀 3880

filebeat.inputs:

- type: log

# 檢查檔案更新的頻率

# 預設是 10s

scan_frequency: 10s

# backoff 選項指定 filebeat 如何積極地抓取新檔案進行更新

# 預設1s

# backoff 選項定義 filebeat 在達到 eof 之後再次檢查檔案之間等待的時間

backoff: 1s

# 在達到 eof 之後再次檢查檔案是否更新之前 filebeat 等待的最長時間

max_backoff: 10s

# backoff_factor 定義了 backoff 的速度。backoff_factor 越大,max_backoff 值到達的速度越快。如果該值設定為1,則不會發生 backoff。

# backoff 值每次都會與 backoff_factor 相乘,直到達到 max_backoff 為止

backoff_factor: 2

# 啟用此選項時,假設乙個檔案找不到了, 將立即關閉檔案處理程式。假設檔案稍後再次出現,則在 scan_frequency 後的最後乙個已知位置繼續採集。

close_removed: true

# 必須將 ignore_older 設定為大於 close_inactive. 因為你可以忽略之後再啟用, 而不可以關閉 harvester 之後再啟用

# 忽略過去 ignore_older 時間沒有修改的檔案

# 當需要檢視最近一周內所產生的日誌檔案時, 可以配置 ignore_older: 168h

# 預設禁用 ( 設定為 0, , 沒有檔案被忽略 )

# 時間填寫格式: 2h (2 hours), 5m (5 minutes)

ignore_older: 0

# 每個 harvester 在獲取檔案時使用的緩衝區的位元組大小。預設值是16384。

harvester_buffer_size: 16384

# 關閉過去 close_inactive 時間非活動狀態的檔案的 harvester

# 判斷依據是檔案的最後一行是否更新, 而不是檔案的最後修改時間

# 時間填寫格式: 2h (2 hours), 5m (5 minutes)

close_inactive: 5m

# 並行開始的 harvesters 的最大數量, 預設是 0, 代表沒有限制

harvester_limit: 0

# 不管 harvester 有沒有完成讀取檔案, 在預定義時間之後關閉 harvester

# 雖然 close_timeout 將在 close_timeout 時間之後關閉檔案的 harvester, 但是如果檔案仍然在更新, filebeat 將根據定義的 scan_frequency 再次啟動乙個新的 harvester , 這個 harvester 的 close_timeout 將會隨著超時倒計時再次啟動

# 預設情況下這個選項是禁用的

# 存在潛在的資料丟失

close_timeout: 0

# 在 clean_inactive 時間之後, 從登錄檔檔案中刪除先前收穫的檔案的狀態

# clean_inactive設定必須大於ignore_older + scan_frequency

# 確保在仍然獲取檔案時沒有刪除任何狀態

# 否則,設定可能導致filebeat不斷地重新傳送完整的內容

# 因為clean_inactive刪除了仍然被filebeat檢測到的檔案的狀態。如果檔案被更新或再次出現,則從開始處讀取該檔案。

clean_inactive: 0

# 用於發布緩衝事件的內部佇列配置.

queue:

# 當輸出準備好為另一批事件提供伺服器時, 記憶體佇列將向輸出顯示所有可用的事件 ( 直到輸出 bulk_max_size )

# 記憶體佇列將所有事件儲存在記憶體中。

mem:

# 佇列可以緩衝的最大事件數。

events: 4096

# 發布所需事件的最小數量

# 如果將此值設定為0, 則輸出可以開始發布事件, 而不需要額外的等待時間, 否則輸出必須等待更多事件

flush.min_events: 2048

# 當佇列中儲存的事件數小於 min_flush_events, 輸出事件等待的最大持續時間是 flush.timeout

flush.timeout: 1s

# 在將事件**到輸出之前, spool 佇列將在本地 spool 檔案中儲存事件

# spool檔案是乙個迴圈緩衝區, 一旦檔案/緩衝區滿了, 它就會阻塞

# 一旦 write buffer 滿了, 或者觸發了flush_timeout, 事件被放入 write buffer 並 flush

# 一旦輸出確認, 事件將立即從佇列中移除, 從而為新事件的持久化騰出空間

spool:

# 一旦檔案存在, `size`, `page_size` 和 `prealloc` 這些設定無效

file:

# spool檔案的位置, 預設的位置是 $/spool.dat

# spool檔案路徑, 如果檔案不存在, 則在啟動時建立

path: "$/spool.dat"

# 檔案的許可權

# 許可權在建立檔案時應用

# 如果檔案已經存在, 則將檔案許可權與 file.permissions 進行比較, 如果實際的檔案許可權比配置的更寬鬆, 則不會開啟 spool 檔案

permissions: 0600

# 檔案大小提示, 一旦達到這個極限, spool 阻塞

# 大小應該比預期的事件大小和寫入緩衝區大小大得多。否則佇列將阻塞,因為它沒有足夠的空間。

# 一旦生成檔案,就不能更改檔案大小。這個限制將在未來被取消。

size: 100mib

# 乙個檔案被分割成相同大小的多個頁面

# 預設值是4kib

# 此設定應與檔案系統的最小塊大小匹配, 如果page_size不是檔案系統塊大小的倍數, 則檔案系統可能會在寫操作時建立額外的讀操作

# 頁面大小只在檔案建立時設定, 事後是無法改變的

page_size: 4kib

# 如果設定了預分配, 使用truncate保留檔案所需的空間

# 預設值為true

# 如果 prealloc 設定為 true, 則使用 truncate 將空間保留到 file.size

# 此設定僅在建立檔案時使用。

prealloc: true

# 如果出現一下情況, 事件被序列化到寫緩衝區中並被重新整理

# - 已達到緩衝極限

# - 已達到緩衝事件的配置限制

# - 觸發了重新整理超時

write:

# 設定 write buffer 大小

buffer_size: 1mib

# 如果寫緩衝區尚未滿, 重新整理事件的最大等待時間

# 預設值是 1s

flush.timeout: 1s

# 最大緩衝事件數。一旦達到限制,寫緩衝區就會被重新整理。

flush.events: 16384

# 用於序列化事件的事件編碼

# 有效的編碼有: json, ubjson 和 cbor

codec: cbor

read:

# 如果 flush_timeout 為 0, 則立即將所有可用事件**到輸出

# 預設是 0s

flush.timeout: 0s

# 設定可以同時執行的最大cpu數。預設值為系統中可用的邏輯cpu的數量。

max_procs:

filebeat的基本配置 基本配置)

filebeat 輸入配置編寫 基本配置 efk 中filebeat的檔案輸入 抽取本地檔案的配置檔案編寫 filebeat.inputs type log enabled true paths var log log var log log 抽取普通日誌。模組格式化抽取。type log path...

Filebeat的高階配置 Filebeat部分

filebeat的配置檔案是 etc filebeat filebeat.yml,遵循yaml語法。具體可以配置如下幾個專案 這個blog主要講解filebeat的配置部分,其他部分後續會有新的blog介紹。filebeat的部分主要定義prospector的列表,定義監控 的日誌檔案,關於如何定義...

Filebeat的高階配置 Filebeat部分

filebeat的配置檔案是 etc filebeat filebeat.yml,遵循yaml語法。具體可以配置如下幾個專案 這個blog主要講解filebeat的配置部分,其他部分後續會有新的blog介紹。filebeat的部分主要定義prospector的列表,定義監控 的日誌檔案,關於如何定義...