從零編寫日誌分析系統之filebeat安裝配置

filebeat和logstach都是日誌採集工具,不過logstach可以進行數據清洗。在應用服務器上直接安裝Logstash比較消耗性能,所以需要安裝filebeat來獲取數據,再轉發到logstash進行數據清洗。

filebeat安裝

filebeat很小巧,只有8M,通過配置yum源就能安裝。不過我是在官網下載的安裝包。
官網下載地址:https://www.elastic.co/downloads/beats/filebeat
下載完以後在應用服務器上解壓,並編輯配置文件filebeat.yml。

filebeat.prospectors:

- input_type: log
  paths:
    - /usr/local/server/nginx/logs/access.log
  fields:
    logIndex: nginx
    docType: nginx-access
output.logstash:
 hosts: ["127.0.0.1:5044"]

修改完成後啓動filebeat
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &

filebeat配置說明

paths:日誌檢測路徑。可以是指定到文件或文件夾,也可以通過*號匹配
- /var/log/*.log
output.logstash:把數據發送給logstash。

output.logstash:
hosts: ["127.0.0.1:5044"]

json.keys_under_root: true 若收取日誌格式爲json的log,請開啓此配置
encoding:指定被監控的文件的編碼類型,使用plain和utf-8都是可以處理中文日誌的。

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

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

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

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

fields:向輸出的每一條日誌添加額外的信息,比如“level:debug”,方便後續對日誌進行分組統計。默認情況下,會在輸出信息的fields子目錄下以指定的新增fields建立子目錄,例如fields.level。

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

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

close_older:如果一個文件在某個時間段內沒有發生過更新,則關閉監控的文件handle。默認1h,change只會在下一次scan纔會被發現

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

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

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

harvester_buffer_size:每個harvester監控文件時,使用的buffer的大小。

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

multiline:適用於日誌中每一條日誌佔據多行的情況,比如各種語言的報錯信息調用棧。

tail_files:如果設置爲true,Filebeat從文件尾開始監控文件新增內容,把新增的每一行文件作爲一個事件依次發送,而不是從文件開始處重新發送所有內容。

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中的事件數量超過這個閾值的時候會清空發送出去(不論是否到達超時時間)。

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

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

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

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

參考:filebeat高級配置

發佈了62 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章