如何配置Filebeat收集日誌文件

[Filebeat7.6]

日誌輸入

filebeat.inputs:
- type: log
  paths:
    - /var/log/*.log
    - /var/path2/*.log

您可以添加額外的 配置設置(如fieldsinclude_linesexclude_linesmultiline,等),從這些文件中獲取行。您指定的選項將應用於此輸入收集的所有文件。

要將不同的配置設置應用於不同的文件,您需要定義多個輸入節:

filebeat.inputs:
- type: log 
  paths:
    - /var/log/system.log
    - /var/log/wifi.log
- type: log 
  paths:
    - "/var/log/apache2/*"
  fields:
    apache: true
  fields_under_root: true

確保在所有input中每個文件只定義一次,因爲定義多次這可能導致意外的行爲。

配置選項

  • paths

    將獲取的Glob的路徑的列表。這裏也支持Go Glob支持的所有模式。
    例如,將所有文件從子目錄的獲取,/var/log/*/*.log,將從/var/log的子文件夾中提取所有.log文件。它不會從/var/log文件夾本身獲取日誌文件。可以使用可選recursive_glob設置以遞歸方式獲取目錄所有子目錄中的所有文件。

  • recursive_glob.enabled
    默認開啓,啓用擴展**爲遞歸glob模式。它將單個擴展**爲8級深度*模式。

  • encoding

    用於讀取包含國際字符的數據的文件編碼。請參閱W3C建議在HTML5中使用的編碼名稱。

  • exclude_lines

    正則表達式列表,匹配要排除的行。Filebeat會刪除列表中與正則表達式匹配的所有行。默認情況下,不刪除任何行。空行將被忽略。

    如果還指定了多行設置,則在用過濾各行之前,將每條多行消息合併爲一行exclude_lines

    以下示例將Filebeat配置爲刪除以開頭的任何行 DBG

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

    支持的正則表達式模式的列表,請參見正則表達式支持

  • include_lines

    正則表達式列表,以匹配您要匹配的行。Filebeat僅匹配與列表中的正則表達式匹配的行。默認情況下,所有行均被導出。空行將被忽略。

    如果還指定了多行設置,則在用過濾各行之前,將每條多行消息合併爲一行include_lines

    以下示例將Filebeat配置爲導出以ERR或開頭的任何行WARN

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

    NOTE

    如果同時定義了include_linesexclude_lines,首先執行include_lines,然後執行exclude_lines`。定義兩個選項的順序無關緊要。

    以下示例匹配所有包含的日誌行sometext,但以DBG(調試消息)開頭的行除外

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

在獲取文件時使用的緩衝區大小(以字節爲單位)。默認值爲16384。

max_bytes

一條日誌消息可以具有的最大字節數。之後的所有字節 max_bytes將被丟棄而不發送。此設置對於可能會變大的多行日誌消息特別有用。默認值爲10MB(10485760)。

json

這些選項使Filebeat可以解碼結構化爲JSON消息的日誌。Filebeat逐行處理日誌,因此,只有每行有一個JSON對象時,JSON解碼纔有效。

multiline

控制Filebeat如何處理跨多行的日誌消息的選項。有關配置多行選項的更多信息,請參見多行消息

ignore_older

如果啓用此選項,則Filebeat將忽略在指定時間跨度之前修改的所有文件。ignore_older如果長時間保留日誌文件,則配置特別有用。例如,如果要啓動Filebeat,但只想發送最新的文件和上週的文件,則可以配置此選項。

您可以使用2h(2小時)和5m(5分鐘)之類的時間字符串。默認值爲0,將禁用設置。註釋掉配置與將其設置爲0具有相同的效果。

important

您必須設置ignore_older爲大於close_inactive

受此設置影響的文件分爲兩類:

  • 從未收集過的文件
  • 收穫但未更新的文件的時間不超過 ignore_older
scan_frequency

Filebeat多久檢查一次指定用於收集的路徑中的新文件。指定1s可以儘可能頻繁地掃描目錄,而不會導致Filebeat頻繁掃描。我們不建議設置此值<1s

如果您需要近乎實時地發送日誌行,設置 scan_frequency調整,close_inactive以使文件處理程序保持打開狀態並不斷輪詢文件。

默認設置爲10秒。

常用選項

enabled

使用該enabled選項可以啓用和禁用輸入。默認情況下,啓用設置爲true。

tags

Filebeat包含在tags每個已發佈事件的字段中的標籤列表。使用標記,可以輕鬆地在Kibana中選擇特定事件或在Logstash中應用條件過濾。這些標籤將被添加到常規配置中指定的標籤列表中。

例:

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

您可以指定可選字段以將其他信息添加到輸出中。例如,您可以添加可用於過濾日誌數據的字段。字段可以是標量值,數組,字典或它們的任何嵌套組合。默認情況下,您在此處指定的字段將被分組fields到輸出文檔中的子詞典下。要將自定義字段存儲爲頂級字段,請將fields_under_root選項設置爲true。如果在常規配置中聲明瞭重複字段,則其值將被此處聲明的值覆蓋。

filebeat.inputs:
- type: log
  . . .
  fields:
    app_id: query_engine_12
fields_under_root

如果將此選項設置爲true,則自定義 字段將作爲頂級字段存儲在輸出文檔中,而不是分組在fields子詞典下。如果自定義字段名稱與Filebeat添加的其他字段名稱衝突,則自定義字段將覆蓋其他字段。

processors

應用於輸入數據的處理器列表。

有關在配置中指定處理器的信息,請參閱處理器

pipeline

要爲此輸入生成的事件設置的接收節點管道ID。

也可以在Elasticsearch輸出中配置管道ID,但是此選項通常會導致配置文件更簡單。如果在輸入和輸出中都配置了管道,則使用輸入中的選項。

keep_null

如果將此選項設置爲true,則帶有null值的字段將發佈在輸出文檔中。默認情況下,keep_null設置爲false

index

如果存在,此格式化的字符串將覆蓋來自此輸入的事件的索引(對於elasticsearch輸出),或者設置raw_index事件的元數據的字段(對於其他輸出)。該字符串只能引用代理名稱和版本以及事件時間戳。用於訪問動態字段,使用 output.elasticsearch.index或處理器。

值示例:"%{[agent.name]}-myindex-%{+yyyy.MM.dd}"可能擴展爲"filebeat-myindex-2019.11.01"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章