Filebeat的高級配置-Filebeat部分

在Filebeat安裝完成準備使用前,最好先對Filebeat進行一些詳細的配置再使用,下面來詳細講解一下相關內容。

Filebeat的配置文件是/etc/filebeat/filebeat.yml,遵循YAML語法。具體可以配置如下幾個項目:

Filebeat

Output

Shipper

Logging(可選)

Run Options(可選)

這個Blog主要講解Filebeat的配置部分,其他部分后續(xù)會有新的Blog介紹。

Filebeat的部分主要定義prospector的列表,定義監(jiān)控哪里的日志文件,關于如何定義的詳細信息可以參考filebeat.yml中的注釋,下面主要介紹一些需要注意的地方。

paths:指定要監(jiān)控的日志,目前按照Go語言的glob函數(shù)處理。沒有對配置目錄做遞歸處理,比如配置的如果是:

/var/log/* /*.log

則只會去/var/log目錄的所有子目錄中尋找以”.log”結尾的文件,而不會尋找/var/log目錄下以”.log”結尾的文件。

encoding:指定被監(jiān)控的文件的編碼類型,使用plain和utf-8都是可以處理中文日志的。

input_type:指定文件的輸入類型log(默認)或者stdin。

exclude_lines:在輸入中排除符合正則表達式列表的那些行。

include_lines:包含輸入中符合正則表達式列表的那些行(默認包含所有行),include_lines執(zhí)行完畢之后會執(zhí)行exclude_lines。

exclude_files:忽略掉符合正則表達式列表的文件(默認為每一個符合paths定義的文件都創(chuàng)建一個harvester)。

fields:向輸出的每一條日志添加額外的信息,比如“l(fā)evel:debug”,方便后續(xù)對日志進行分組統(tǒng)計。默認情況下,會在輸出信息的fields子目錄下以指定的新增fields建立子目錄,例如fields.level。

fields:

level: debug

則在Kibana看到的內容如下:

fields_under_root:如果該選項設置為true,則新增fields成為頂級目錄,而不是將其放在fields目錄下。自定義的field會覆蓋filebeat默認的field。例如添加如下配置:

fields:

level: debug

fields_under_root: true

則在Kibana看到的內容如下:

ignore_older:可以指定Filebeat忽略指定時間段以外修改的日志內容,比如2h(兩個小時)或者5m(5分鐘)。

close_older:如果一個文件在某個時間段內沒有發(fā)生過更新,則關閉監(jiān)控的文件handle。默認1h。

force_close_files:Filebeat會在沒有到達close_older之前一直保持文件的handle,如果在這個時間窗內刪除文件會有問題,所以可以把force_close_files設置為true,只要filebeat檢測到文件名字發(fā)生變化,就會關掉這個handle。

scan_frequency:Filebeat以多快的頻率去prospector指定的目錄下面檢測文件更新(比如是否有新增文件),如果設置為0s,則Filebeat會盡可能快地感知更新(占用的CPU會變高)。默認是10s。

document_type:設定Elasticsearch輸出時的document的type字段,也可以用來給日志進行分類。

harvester_buffer_size:每個harvester監(jiān)控文件時,使用的buffer的大小。

max_bytes:日志文件中增加一行算一個日志事件,max_bytes限制在一次日志事件中最多上傳的字節(jié)數(shù),多出的字節(jié)會被丟棄。

multiline:適用于日志中每一條日志占據(jù)多行的情況,比如各種語言的報錯信息調用棧。這個配置的下面包含如下配置:

pattern:多行日志開始的那一行匹配的patternnegate:是否需要對pattern條件轉置使用,不翻轉設為true,反轉設置為falsematch:匹配pattern后,與前面(before)還是后面(after)的內容合并為一條日志max_lines:合并的最多行數(shù)(包含匹配pattern的那一行)timeout:到了timeout之后,即使沒有匹配一個新的pattern(發(fā)生一個新的事件),也把已經(jīng)匹配的日志事件發(fā)送出去

1

2

3

4

5

1

2

3

4

5

tail_files:如果設置為true,F(xiàn)ilebeat從文件尾開始監(jiān)控文件新增內容,把新增的每一行文件作為一個事件依次發(fā)送,而不是從文件開始處重新發(fā)送所有內容。

backoff:Filebeat檢測到某個文件到了EOF之后,每次等待多久再去檢測文件是否有更新,默認為1s。

max_backoff:Filebeat檢測到某個文件到了EOF之后,等待檢測文件更新的最大時間,默認是10秒。

backoff_factor:定義到達max_backoff的速度,默認因子是2,到達max_backoff后,變成每次等待max_backoff那么長的時間才backoff一次,直到文件有更新才會重置為backoff。比如:

如果設置成1,意味著去使能了退避算法,每隔backoff那么長的時間退避一次。

spool_size:spooler的大小,spooler中的事件數(shù)量超過這個閾值的時候會清空發(fā)送出去(不論是否到達超時時間)。

idle_timeout:spooler的超時時間,如果到了超時時間,spooler也會清空發(fā)送出去(不論是否到達容量的閾值)。

registry_file:記錄filebeat處理日志文件的位置的文件

config_dir:如果要在本配置文件中引入其他位置的配置文件,可以寫在這里(需要寫完整路徑),但是只處理prospector的部分。

publish_async:是否采用異步發(fā)送模式(實驗功能)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容