官網下載安裝包 html
解壓到指定目錄,打開解壓後的目錄,打開filebeat.yml進行配置。linux
①:配置 Filebeat prospectors->path 這裏的路徑是所要收集日誌的路徑 。。eg:在當前目錄下建一個data文件夾,裏面放下載的示例文件(在Logstash那篇),人家應該是linux下的文件。shell
我這裏將下載的日誌文件 加了後綴.log ,放在data目錄下windows
因此個人配置以下:elasticsearch
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- E:\filebeat-6.6.2-windows-x86_64\data\logstash-tutorial.log\*.log
#- c:\programdata\elasticsearch\logs\*
②:配置 enabled: true 這個配置很重要,只有配置爲true以後配置纔可生效,不然不起做用。
③:配置Outputs ,這裏的Outputs有elasticsearch,logstash。按照配置文件下面的示例配置便可。只能配置一個輸出。默認是ElasticSearchide
output.elasticsearch: # The Logstash hosts hosts: ["localhost:9200"]
默認狀況下,Filebeat寫事件到名爲filebeat-6.3.2-yyyy.MM.dd的索引,其中yyyy.MM.dd是事件被索引的日期。爲了用一個不一樣的名字,你能夠在Elasticsearch輸出中設置index選項。
而後在當前目錄下,新建一個bat文件,eg : run.bat 內容post
.\filebeat -e -c filebeat.yml
單擊bat,啓動filebeat學習
正常狀況下,應該有個連接ES的過程,將數據輸出到es。fetch
打開ES能看到多了一個filebeat-6.6.2-年月日的索引。。ui
若沒有這個,而是一直Non-zero metrics inthe last 30s。這個時間參數是個掃描文件的頻率,能夠修改。那就要看下 配置的路徑對不對。命令行中會有讀取的文件的路徑信息,仔細檢查一下。
filebeat目錄下有POWERSHELL腳本(install-service-filebeat.ps1),運行一下便可。將Powershell腳本的默認打開方式選擇爲Powershell.exe,直接運行。而後在服務中啓動。
若是你想使用Logstash對Filebeat收集的數據執行額外的處理,那麼你須要將Filebeat配置爲使用Logstash。
output.logstash: hosts: ["127.0.0.1:5044"]
setup.kibana: host: "localhost:5601"
更多配置參數,查看官網
Filebeat是使用GO語言開發,由兩個主要組件組成:prospector 和harvester。這些組件一塊兒工做來讀取文件(tail file)並將事件數據發送到您指定的輸出。
工做原理以下:當Filebeat啓動時,它會啓動一個或者多個prospector監控日誌路徑或日誌文件,每一個日誌文件會有一個對應的harvester,harvester按行讀取日誌內容並轉發至後臺程序。Filebeat維護一個記錄文件讀取信息的註冊文件,記錄每一個harvester最後讀取位置的偏移量。
下面是一個簡單的Filebeat配置,採集2個文件夾下的日誌並轉發至Logstash。
filebeat:
prospectors:
-
paths:
- /dir1/access_log.*
input_type: log
document_type: dir1_log
-
paths:
- /dir2/ofbiz.log.*
input_type: log
document_type: dir2_log
output:
logstash:
hosts: ["10.90.4.9:5044"]
在Logstash中根據 document_type定義解析日誌的正則並輸出到ELasticsearch集羣。
input { beats{ host => "192.2.11.145" port => 5044 } } filter { if[type]=="dir1_log"{ grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } } else if ([type]=="dir2_log") { grok { match => { "message" => "%{TIMESTAMP_ISO8601:time}\s*%{NUMBER:logtime} \[\s*%{JAVAFILE:class}\:%{NUMBER:lineNumber}\s*\:%{LOGLEVEL:level}\s*\]\s*(?<info>([\s\S]*))"} } } } output { elasticsearch { hosts => ["10.90.4.9","10.90.4.8","10.90.4.7"] } }
中文翻譯的配置參數:Filebeat6.3文檔—Log input配置
更多參考官網學習