概述:Filebeat是一個日誌文件託運工具,在你的服務器上安裝客戶端後,filebeat會監控日誌目錄或者指定的日誌文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),而且轉發這些信息到elasticsearch、logstarsh或者redis中存放。html
本次安裝filebeat使用的是已經下載至本地的tar包,只須要解壓便可使用。linux
tar xf filebeat-6.2.2-linux-x86_64.tar.gz
filebeat能夠起多個進程,運行依賴於.yml 配置文件。文件中定義filebeat讀取的日誌文件,以及輸出方式。安裝完成以後,會有一個模板 filebeat.yml,咱們能夠自定義 .yml 文件的名稱,只須要啓動的時候接入配置文件便可。redis
啓動多個進程,須要使用參數 --path.data /xxx/xxx 來重定向進程路徑。ruby
場景一:Filebeat採集數據,寫入到logstash服務器
filebeat配置文件:out-logstash.ymlapp
filebeat: prospectors: - paths: - /var/log/named/namequery.log output.logstash: hosts: ["logstashIP:5044"]
啓動filebeat負載均衡
./filebeat -e -c out-logstash.yml --path.data /apps/data/filebeat/out-logstash/
logstash配置elasticsearch
input { beats { port => 5044 } } output { stdout { codec => "rubydebug" } }
場景二:Filebeat採集數據,寫入到redis,而後logstash從reids隊列中拉取數據ide
filebeat配置文件:out-redis.yml工具
filebeat: prospectors: - paths: - /var/log/named/namequery.log output.redis: hosts: ["redis_1IP","redis_2IP","redis_3IP"] loadbalance: false # 數據只是往一個redis裏丟,若是這個redis掛了,就會自動將數據丟在另外一個redis中,若是爲yes,則將數據均分到各個redis中 port: 6379 key: "dns-ct" db: 0 timeout: 3
啓動filebeat
./filebeat -e -c out-redis.yml --path.data /apps/data/filebeat/out-redis/
logstash配置
此處須要進行解釋,第二套應用場景是將一個文件丟如三個redis,由於爲開啓負載均衡,因此只會有一個redis讀取到文件,而安裝部署的時候就將每臺服務器安裝了logstash和redis,而且logstash將數據處理以後將數據所有輸出至同一個es集羣。
input { redis { host => "localredisIP" port => 6379 key => "dns-ct" data_type => "list" } }
output { stdout { codec => "rubydebug" } }