Filebeat中文指南
翻譯自:https://www.elastic.co/guide/en/beats/filebeat/current/index.html
下面的博客是公司里使用filebeat的實例,可以直接借鑒,有問題可以向我反饋。
Filebeat 快速開始: http://www.cnblogs.com/kerwinC/p/8866471.html
一、概述
Filebeat是一個日志文件托運工具,在你的服務器上安裝客戶端后,filebeat會監控日志目錄或者指定的日志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),並且轉發這些信息到elasticsearch或者logstarsh中存放。
以下是filebeat的工作流程:當你開啟filebeat程序的時候,它會啟動一個或多個探測器(prospectors)去檢測你指定的日志目錄或文件,對於探測器找出的每一個日志文件,filebeat啟動收割進程(harvester),每一個收割進程讀取一個日志文件的新內容,並發送這些新的日志數據到處理程序(spooler),處理程序會集合這些事件,最后filebeat會發送集合的數據到你指定的地點。
(個人理解,filebeat是一個輕量級的logstash,當你需要收集信息的機器配置或資源並不是特別多時,使用filebeat來收集日志。日常使用中,filebeat十分穩定,筆者沒遇到過宕機。)
二、Filebeat入門
開始配置使用filebeat之前,你需要安裝並配置好這些依賴程序:
Elasticsearch 作為存儲和索引這些數據。
Kibana 作為展示平台。
Logstash(可選)去插入數據到elasticsearch。
在安裝完畢elastic集群之后,閱讀接下來的選項學習怎樣安裝,配置,與運行filebeat。
第一步:安裝filebeat
請選擇你系統中的下載安裝命令來下載安裝filebeat。(deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac for OS X, and win for Windows).
如果你使用yum或者apt,你可以從我們的安裝倉庫中更方便的安裝或更新到新版本。
deb: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb sudo dpkg -i filebeat-5.1.1-amd64.deb rpm: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm sudo rpm -vi filebeat-5.1.1-x86_64.rpm mac: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-darwin-x86_64.tar.gz tar xzvf filebeat-5.1.1-darwin-x86_64.tar.gz win: 略。
第二步:配置filebeat
編輯配置文件來配置filebeat,對於rpm或者deb來說,配置文件是/etc/filebeat/filebeat.yml這個文件,對於MAC或者win來說,請查看你的解壓文件中。
這里有一個簡單的filebeat的配置文件filebeat.yml的樣本,filebeat會使用很多默認的選項。
#---------------prospectors塊----------------
filebeat.prospectors: - input_type: log paths: - /var/log/*.log #- c:\programdata\elasticsearch\logs\*
讓我們來配置filebeat:
1、定義你的日志文件的路徑(一個或多個)
對於大多數的基本filebeat配置,你可以定義一個單一探測器針對一個單一的路徑,例如:
#---------------prospectors塊----------------
filebeat.prospectors: - input_type: log paths: - /var/log/*.log
#json.keys_under_root: true 若收取日志格式為json的log,請開啟此配置
在這個例子中,探測器會收集/var/log/*.log的所有匹配文件,這意味這filebeat會手機所有的/var/log下以.log結尾的文件,此處還支持Golang Glob支持的所有模式。
在預定義級別的子目錄中獲取所有文件,可以使用這個配置:/var/log/*/*.log,這會找到/var/log下所有子目錄中所有的以.log結尾的文件。但它並不會找到/var/log文件夾下的以.log結尾的文件。現在它還不能遞歸的在所有子目錄中獲取所有的日志文件。
如果你設置輸出到elasticsearch中,那么你需要在filebeat的配置文件中設置elasticsearch的IP地址與端口。
#-----------------elastic output(一般都不直接輸出到elastic,不建議配置)-----------
output.elasticsearch: hosts: ["192.168.1.42:9200"]
如果你設置輸出到logstarsh,那么請參考第三步,配置filebeat使用logstarsh
第三步:配置filebeat或elasticsearch使用logstarsh
如果要使用logstash對filebeat收集起來的數據執行其他處理,你需要配置filebeat使用logstash。
你需要編輯filebeat的配置文件,注釋elasticsearch的選項,並打開logstash的配置的注釋:
#----------------------------- Logstash output --------------------------------
output.logstash: hosts: ["127.0.0.1:5044"]
hosts選項需要指明logstash服務所監聽的地址和它的端口。
注:若要測試你的配置文件,切換到你安裝好的filebeat的可執行文件的目錄,然后在命令行運行以下選項:./filebeat -configtest -e ,確保您的配置文件在默認配置文件目錄下,見 目錄布局。
在使用這個配置之前,你需要提前設置好logstash來接收數據。
如果想不通過logstash直接入庫到elasticsearch,可注釋掉logstash入庫部分,直接打開elasticsearch入庫部分即可。不建議直接寫入es。
output.elasticsearch:
hosts: ["localhost:9200"]
第四步:啟動filebeat
rpm安裝:
sudo /etc/init.d/filebeat start
現在,filebeat已經准備好讀取你的日志文件並發送到你定義的輸出中了!
2018.04.17 更新 Filebeat 快速開始: http://www.cnblogs.com/kerwinC/p/8866471.html