[Filebeat7.6]
日誌輸入
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
- /var/path2/*.log
您可以添加額外的 配置設置(如fields
, include_lines
,exclude_lines
,multiline
,等),從這些文件中獲取行。您指定的選項將應用於此輸入收集的所有文件。
要將不同的配置設置應用於不同的文件,您需要定義多個輸入節:
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_lines
和exclude_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"
。