配置主要是通過yml文件進行的,主要參數如下:
(1)字段解釋
paths:指定要監控的日志,目前按照Go語言的glob函數處理。沒有對配置目錄做遞歸處理,比如配置的如果是:
/var/log/* /*.log
則只會去/var/log目錄的所有子目錄中尋找以".log"結尾的文件,而不會尋找/var/log目錄下以".log"結尾的文件。
encoding:指定被監控的文件的編碼類型,使用plain和utf-8都是可以處理中文日志的。
input_type:指定文件的輸入類型log(默認)或者stdin。
scan_frequency:Filebeat以多快的頻率去prospector指定的目錄下面檢測文件更新(比如是否有新增文件),如果設置為0s,則Filebeat會盡可能快地感知更新(占用的CPU會變高)。默認是10s。
multiline:適用於日志中每一條日志占據多行的情況,比如各種語言的報錯信息調用棧。這個配置的下面包含如下配置:
pattern:多行日志開始的那一行匹配的pattern
negate:是否需要對pattern條件轉置使用,不翻轉設為true,反轉設置為false。
match:匹配pattern后,與前面(before)還是后面(after)的內容合並為一條日志
max_lines:合並的最多行數(包含匹配pattern的那一行),默認為500行。
timeout:到了timeout之后,即使沒有匹配一個新的pattern(發生一個新的事件),也把已經匹配的日志事件發送出去
tail_files:如果設置為true,Filebeat從文件尾開始監控文件新增內容,把新增的每一行文件作為一個事件依次發送,而不是從文件開始處重新發送所有內容。
配置文件:
filebeat.inputs:
- type: log
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/*.log
配置文件格式非常重要,包括橫杠-之后緊跟一個空格,行首空格應該為兩個等。
測試filebeat啟動后,查看相關輸出信息:
1
|
.
/filebeat
-e -c filebeat.yml -d
"publish"
|
后台方式啟動filebeat:
1
|
nohup
.
/filebeat
-e -c filebeat.yml >
/dev/null
2>&1 & 將所有標准輸出及標准錯誤輸出到
/dev/null
空設備,即沒有任何輸出
|
1
|
nohup
.
/filebeat
-e -c filebeat.yml > filebeat.log &
|
停止filebeat:
查找進程ID並kill掉:
1
|
ps
-ef |
grep
filebeat<br>
kill
-9 進程號
|