filebeat配置介紹


Filebeat Prospector

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/apache/httpd-*.log
  document_type: apache

- input_type: log
  paths:
    - /var/log/messages
    - /var/log/*.log

Filebeat Options

input_type: log|stdin

  • 指定輸入類型

paths

  • 支持基本的正則,所有golang glob都支持,支持/var/log/*/*.log

encoding

  • 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

  • 支持正則 排除匹配的行,如果有多行,合並成一個單一行來進行過濾

include_lines

  • 支持正則 include_lines執行完畢之后會執行exclude_lines。

exclude_files

  • 支持正則 排除匹配的文件
  • exclude_files: ['.gz$']

tags

  • 列表中添加標簽,用過過濾

    filebeat.prospectors:
          - paths: ["/var/log/app/*.json"]
              tags: ["json"]

     

fields

  • 可選字段,選擇額外的字段進行輸出
  • 可以是標量值,元組,字典等嵌套類型
  • 默認在sub-dictionary 位置

    filebeat.prospectors:    
          - paths: ["/var/log/app/*.log"]
             fields:
                app_id: query_engine_12

     

fields_under_root

  • 如果值為ture,那么fields存儲在輸出文檔的頂級位置
  • 如果與filebeat中字段沖突,自定義字段會覆蓋其他字段

    fields_under_root: true
      fields:
          instance_id: i-10a64379
          region: us-east-1

     

ignore_older

  • 可以指定Filebeat忽略指定時間段以外修改的日志內容
  • 文件被忽略之前,確保文件不在被讀取,必須設置ignore older時間范圍大於close_inactive
  • 如果一個文件正在讀取時候被設置忽略,它會取得到close_inactive后關閉文件,然后文件被忽略

close_*

close_ *配置選項用於在特定標准或時間之后關閉harvester。 關閉harvester意味着關閉文件處理程序。 如果在harvester關閉后文件被更新,則在scan_frequency過后,文件將被重新拾取。 但是,如果在harvester關閉時移動或刪除文件,Filebeat將無法再次接收文件,並且harvester未讀取的任何數據都將丟失。

close_inactive

  • 啟動選項時,如果在制定時間沒有被讀取,將關閉文件句柄
  • 讀取的最后一條日志定義為下一次讀取的起始點,而不是基於文件的修改時間
  • 如果關閉的文件發生變化,一個新的harverster將在scan_frequency運行后被啟動
  • 建議至少設置一個大於讀取日志頻率的值,配置多個prospector來實現針對不同更新速度的日志文件
  • 使用內部時間戳機制,來反映記錄日志的讀取,每次讀取到最后一行日志時開始倒計時
  • 使用2h 5m 來表示

close_rename

  • 當選項啟動,如果文件被重命名和移動,filebeat關閉文件的處理讀取

close_removed

  • 當選項啟動,文件被刪除時,filebeat關閉文件的處理讀取
  • 這個選項啟動后,必須啟動clean_removed

close_eof

  • 適合只寫一次日志的文件,然后filebeat關閉文件的處理讀取

close_timeout

  • 當選項啟動時,filebeat會給每個harvester設置預定義時間,不管這個文件是否被讀取,達到設定時間后,將被關閉
  • close_timeout 不能等於ignore_older,會導致文件更新時,不會被讀取
  • 如果output一直沒有輸出日志事件,這個timeout是不會被啟動的,至少要要有一個事件發送,然后haverter將被關閉
  • 設置0 表示不啟動

clean_inactived

  • 從注冊表文件中刪除先前收獲的文件的狀態
  • 設置必須大於ignore_older+scan_frequency,以確保在文件仍在收集時沒有刪除任何狀態
  • 配置選項有助於減小注冊表文件的大小,特別是如果每天都生成大量的新文件
  • 此配置選項也可用於防止在Linux上重用inode的Filebeat問題

clean_removed

  • 啟動選項后,如果文件在磁盤上找不到,將從注冊表中清除filebeat
  • 如果關閉close removed 必須關閉clean removed

scan_frequency

  • prospector檢查指定用於收獲的路徑中的新文件的頻率,默認10s

document_type

  • 類型事件,被用於設置輸出文檔的type字段,默認是log

harvester_buffer_size

  • 每次harvester讀取文件緩沖字節數,默認是16384

max_bytes

  • 對於多行日志信息,很有用,最大字節數

json

這些選項使Filebeat解碼日志結構化為JSON消息
逐行進行解碼json

  • keys_under_root
    • 設置key為輸出文檔的頂級目錄
  • overwrite_keys
    • 覆蓋其他字段
  • add_error_key
    • 定一個json_error
  • message_key
    • 指定json 關鍵建作為過濾和多行設置,與之關聯的值必須是string

multiline

控制filebeat如何處理跨多行日志的選項,多行日志通常發生在java堆棧中

multiline.pattern: '^\['
multiline.negate: true
multiline.match: after

上面匹配是將多行日志所有不是以[符號開頭的行合並成一行它可以將下面的多行日志進行合並成一行

[beat-logstash-some-name-832-2015.11.28] IndexNotFoundException[no such index]
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)
    at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)

multiline.pattern

  • 指定匹配的正則表達式,filebeat支持的regexp模式與logstash支持的模式有所不同
    pattern regexp

multiline.negate

  • 定義上面的模式匹配條件的動作是 否定的,默認是false
  • 假如模式匹配條件'^b',默認是false模式,表示講按照模式匹配進行匹配 將不是以b開頭的日志行進行合並
  • 如果是true,表示將不以b開頭的日志行進行合並

multiline.match

  • 指定Filebeat如何將匹配行組合成事件,在之前或者之后,取決於上面所指定的negate

multiline.max_lines

  • 可以組合成一個事件的最大行數,超過將丟棄,默認500

multiline.timeout

  • 定義超時時間,如果開始一個新的事件在超時時間內沒有發現匹配,也將發送日志,默認是5s

tail_files

  • 如果此選項設置為true,Filebeat將在每個文件的末尾開始讀取新文件,而不是開頭
  • 此選項適用於Filebeat尚未處理的文件

symlinks

  • 符號鏈接選項允許Filebeat除常規文件外,可以收集符號鏈接。收集符號鏈接時,即使報告了符號鏈接的路徑,Filebeat也會打開並讀取原始文件。

backoff

  • backoff選項指定Filebeat如何積極地抓取新文件進行更新。默認1s
  • backoff選項定義Filebeat在達到EOF之后再次檢查文件之間等待的時間。

max_backoff

  • 在達到EOF之后再次檢查文件之前Filebeat等待的最長時間

backoff_factor

  • 指定backoff嘗試等待時間幾次,默認是2

harvester_limit

  • harvester_limit選項限制一個prospector並行啟動的harvester數量,直接影響文件打開數

enabled

  • 控制prospector的啟動和關閉

filebeat global

spool_size

    • 事件發送的閥值,超過閥值,強制刷新網絡連接

      filebeat.spool_size: 2048

       

 

publish_async

  • 異步發送事件,實驗性功能

idle_timeout

  • 事件發送的超時時間,即使沒有超過閥值,也會強制刷新網絡連接

    filebeat.idle_timeout: 5s

     

registry_file

  • 注冊表文件的名稱,如果使用相對路徑,則被認為是相對於數據路徑
  • 有關詳細信息,請參閱目錄布局部分 默認值為${path.data}/registry

    filebeat.registry_file: registry

     

config_dir

  • 包含額外的prospector配置文件的目錄的完整路徑
  • 每個配置文件必須以.yml結尾
  • 每個配置文件也必須指定完整的Filebeat配置層次結構,即使只處理文件的prospector部分。
  • 所有全局選項(如spool_size)將被忽略
  • 必須是絕對路徑

filebeat.config_dir: path/to/configs

shutdown_timeout

  • Filebeat等待發布者在Filebeat關閉之前完成發送事件的時間。

Filebeat General

name

  • 設置名字,如果配置為空,則用該服務器的主機名

      name: "my-shipper"

queue_size

  • 單個事件內部隊列的長度 默認1000

bulk_queue_size

  • 批量事件內部隊列的長度

max_procs

  • 設置最大使用cpu數量

geoip.paths

  • 此配置選項目前僅由Packetbeat使用,它將在6.0版中刪除
  • 要使GeoIP支持功能正常,GeoLite City數據庫是必需的。

      geoip:
        paths:
          - "/usr/share/GeoIP/GeoLiteCity.dat"
          - "/usr/local/var/GeoIP/GeoLiteCity.dat"

Filebeat reload

屬於測試功能

path

  • 定義要檢查的配置路徑

reload.enabled

  • 設置為true時,啟用動態配置重新加載。

reload.period

  • 定義要檢查的間隔時間
filebeat.config.prospectors:
  path: configs/*.yml
  reload.enabled: true
  reload.period: 10s


原文地址http://www.jianshu.com/p/9b0a0a055a88?hmsr=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com


免責聲明!

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



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