Filebeat6.3文檔—Log input配置


Filebeat6.3文檔—Log input配置

paths

日志加載的路徑.例如加載某一子目錄級別下面路徑的日志:/var/log/*/*.log.這表示會去加載以.log結尾的/var/log下面的所有子目錄,注意:這不包括/var/log這一級目錄.可在paths前面加(-),指定多個目錄路徑

recursive_glob.enabled

這個特性可以在路徑后面跟隨**,表示加載這個路徑下所有的文件,例如:/foo/**,表示加載/foo,/foo/*,/foo/*/*.這項特性默認是打開的,要關閉可以設置recursive_glob.enabled=false

encoding

encdoing根據輸入的文本設置

  • plain, latin1, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk, hz-gb-2312,
  • euc-kr, euc-jp, iso-2022-jp, shift-jis, and so on
exclude_lines

用一個數組匹配FIlebeat排除的行

如果使用了multiline這個設置的話,每一個multiline信息在被exclude_lines過濾之前都會被合並成一個簡單行

下面這個例子表示,Filebeat會過濾掉所有的以DBG開頭的行

filebeat.inputs:
- type: log
  ...
  exclude_lines: ['^DBG']
include_lines

和exclude_lines相反,Filebeat只會接受符合正則表達式的行

下面這個例子表示Filebeat將導出以ERR或WARN開頭的所有行

filebeat.inputs:
- type: log
  ...
  include_lines: ['^ERR', '^WARN']

如果exclude_lines和include_lines都被定義了,那么Filebeat將先執行include_lines,然后再執行exclude_lines,兩者沒有順序關系

下面這個例子表示Filebeat將導出所有包含sometext的列,但是除了以DBG開頭的行

filebeat.inputs:
- type: log
  ...
  include_lines: ['sometext']
  exclude_lines: ['^DBG']
harvester_buffer_size

每個harvester的緩存大小,默認是16384

max_bytes

單個日志消息可以發送的最大字節,這個設置對multiline特別管用,默認是10MB

json

設置實例

json.keys_under_root: true
json.add_error_key: true
json.message_key: log
keys_under_root

默認情況下,解析的JSON位於輸出文檔中的“json”鍵下。如果啟用此設置,則會在輸出文檔中將鍵復制到頂層。

overwriter_keys

如果啟用了keys_under_root和此設置,則解碼的JSON對象中的值將覆蓋Filebeat通常添加的字段(類型,源,偏移等)以防發生沖突。

add_error_key

如果啟用此設置,則Filebeat會在JSON解析錯誤或在配置中定義message_key但無法使用時添加“error.message”和“error.type:json”鍵

message_key

指定被過濾的行和multiline的key,如果指定了key,那么這個key必須在頂層,並且value必須是string類型, 要不然將不能被過濾或聚合分析

ignore_decoding_error

指定如果json解析錯誤是否應該被記日志,默認是false

multiline

將多行日志合並成一行

exclude_files

用正則表達式來匹配你想要Filebeat過濾的文件

下面這個例子表示,Filebeat會過濾以gz為擴展名的文件

filebeat.inputs:
- type: log
  ...
  exclude_files: ['\.gz$']
ignore_older

Filebeat將忽略在指定的時間跨度之前修改的所有文件.例如,如果你想要在啟動Filebeat的時候只發送最新的files和上周的文件,你就可以用這個設置

你可以使用string類型的字符串表示例如2h(2 hours) and 5m(5 minutes),默認是0,

設置0和注釋掉這個配置具有一樣的效果

注意:你必須設置ignore_older大於close_inactive

兩類文件會受此設置的影響

1.文件未被harvest

2.文件被harvest但是沒有更新的時間超過ignore_older設置的時間

close_*

用來關閉harvester在設置某個標准或時間之后.如果某個文件在被harvester關閉后更新,那么這個文件會在scan_frequency過去之后將再次被handler.

close_inactive

啟用此選項后,如果文件尚未在指定的持續時間內harvested,那么會關閉文件handler.定義期間的計時器從harvester讀最后一個文件開始.如果這個被關閉的文件內容再次改變,那么在scal_frequency之后會再次被pick up

我們推薦你設置這個值大於你頻繁更新文件的時間,如果你更新log文件每幾秒一次,那么你可以放心的設置close_inactive為1m,

close_renamed

如果設置這個值,Filebeat將會關閉文件處理當一個文件被改名了

close_timeout

給每個harvester設定一個生命周期,如果超過這個設定的時間,那么Filebeat將會停止讀取這個文件,如果這個文件依然在更新, 那么會開始一個新的harvester,並重新計時.設置close_timeout可以使操作系統定期釋放資源

如果你設置了close_timeout和ignore_older相等的時間,如果當harvester關閉后,這個文件被修改了,那么它也不會被pick up了.這通常會導致數據丟失. 如果正在處理multiline的時候close_timeout時間到了,那么可能只發送了部分文件.

clean_inactive

Filebeat將在設定的時間過后移除掉文件的讀取狀態,如果在移除文件的讀取狀態后,文件再次被更新,那么這個文件將再次被讀取

這個設置可以有效的減少文件注冊表的大小,特別是在每天有大量新的文件生成的系統中

clean_removed

Filebeat將會從注冊表中移除這些文件,如果這些文件不能再磁盤中被找到.如果某個文件消失了,然后再次出現,那么這個文件將會被從頭開始讀.默認開啟

scan_frequency

Filebeat檢查指定用於讀取的路徑下的新文件的頻率.我們推薦不要設置這個值小於1s,避免Filebeat過於頻繁的掃描.默認是10s

如果想要近實時發送日志文件,請不要使用非常小的scan_frequency,使用close_inactive可以使文件持續的保持打開並不斷的被輪詢

tail_files

如果設置了這個值為true,那么Filebeat將會從尾讀取這個文件

backoff

定義了Filebeat在達到EOF后再次檢查文件之前等待的時間,默認值已經符合大多數的場景,默認1s.

harvester_limit

設置harvesters的並發量.默認設置為0,意思是沒有做限制.如果設定了這個值, 意味着如果文件很多的話,並不會全部被托管,建議和close_*一起使用,這樣能使新的文件被托管

tags

使用標簽能夠在Filebeat輸出的每個事件中加入這個tags字段,這樣能夠被Kibana或Logstash輕松過濾

filebeat.inputs:
- type: log
  . . .
  tags: ["json"]
fields

可以向輸出添加其他信息,例如可以加入一些字段過濾log數據

fields_under_root

如果設定為true,那么自定義字段將存儲為輸出文檔中的頂級字段,而不是在子字段下的分組.如果自定義的字段與其他字段沖突了,那么自定義的字段會覆蓋其他字段


免責聲明!

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



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