Filebeat 快速開始


Filebeat可以做什么

條目
filebeat
編寫語言 GO
是否支持多輸出 支持
是否支持多輸入 支持
是否支持修改日志內容 支持
是否會丟數據 不會
對多行文件的合並 支持
對多層目錄的模糊匹配 支持
安裝配置 簡單
內存占用 與隊列相關

 

filebeat安裝

系統版本:Centos7.2

filebeat版本:5.5.1。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.5.1-x86_64.rpm

安裝命令

rpm -Uvh filebeat-5.5.1-x86_64.rpm

配置文件路徑

/etc/filebeat/filebeat.yml

日志文件路徑

/var/log/filebeat

注意 每次新啟動都會生成一個新的filebeat,上次啟動的會被mv為filebeat.1

啟動命令

systemctl restart filebeat

 

配置文件模板

注意!文件格式為yml,對格式(縮進必須使用空格,注意不要遺漏“-”)有嚴格要求。

#=========================== Filebeat prospectors 文件探測器 =============================
filebeat.prospectors:  #文件探測器

- input_type: log  #探測類型,日志文件
  paths:            #路徑
    - /data/w/www/*/logs/request.log  #注意,通配符*的存在使得相同目錄結構的工程日志都會被收集到。
  #json.keys_under_root: true 若收取日志格式為json的log,請開啟此配置
  document_type: request                #日志類型,也就是elastic索引的type,請見文章隨后詳細解釋1
  fields:
    topic: log_common                   #增加fields.topic:"application_log"字段,用於kafka的多topic配置。

- input_type: log 
  paths: 
    - /data/w/www/*/logs/dubbo-access-consumer.log 
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}\ [0-9]{2}:[0-9]{2}:[0-9]{2}' #對於多行的的日志處理,請見文章隨后的詳細解釋2
  multiline.negate: true
  multiline.match: after
  document_type: dubbo_consumer 
    topic: application_log  
  

#----------------------------- kafka output --------------------------------
output.kafka:  #輸出到kafka
  hosts: ["kafka4.dp.data.cn1.wormpex.com:9092", "kafka5.dp.data.cn1.wormpex.com:9092", "kafka6.dp.data.cn1.wormpex.com:9092"] #kafka-broker地址
  topic: '%{[fields.topic]}' #輸出到哪個topic(就是日志探測哪里定義的fields.topic,利用變量自動發送到不同topic)
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 100000000 #單條日志大小不超過10MB(筆者公司日志出現過單條好幾MB的情況。。。)
#----------------------------- Logstash output --------------------------------
#output.logstash:
#  # The Logstash hosts
#  hosts: ["logstash1.ops.sys.cn1.wormpex.com:5044"] #logstash需要開啟input beta插件,啟動監聽5044端口

注解:

注解1:fields.topic

  定義了這種類型的日志將要發到哪個topic里面,在kafka配置中的topic作為變量使用。

注解2:multiline.pattern

  公司有java工程做web服務器的同學都知道,在我們生產中,java經常會在日志中打印堆棧信息,類似:

2018-04-17 15:12:25.185 IndexNotFoundException[no such index]
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)
    at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)
若直接按行收集的話,在kibana里展示沒有上下文,令人無法觀看。
此配置的功能就是把堆棧信息合並到帶有日期的開頭的日志中,並作為一條發送出去,這樣在kibana里展示就清晰可見了。

有問題請留言,謝謝大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM