Filebeat與Fluentd安裝與說明

什麼是Filebeat

  • 文字紀錄收集器,安裝在業務伺服器上做為代理來監測紀錄檔,並把紀錄檔發送到logstash elasticsearch kibana
  • Logstash 依賴java因此容易消耗大量資源 但filebeats基於golang 無依賴,設定檔簡單,格式明瞭 相較logstash更輕量,資源吃的少

image

Filebeat 與 logstash的分工

  • Filebeat主要負責client端的Log傳輸
  • Logstash在server端進行資料的運算

Filebeat安裝

  • wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.1-x86_64.rpm
  • rpm -ivh filebeat-7.6.1-x86_64.rpm

Filebeat設定

  • cd etc/filebeat/filebeat.yml
    filebeat.inputs: -定義資料原始型態
    -type: log - 有log跟stdin等模式
    -enabled:true - 手動設定開關
     Paths: 
    -/xxx/xxxx/xxx.log - 要偵測的路徑
    =name:”xxx” - 收集紀錄檔中對應的主機名,若為空值則為server name 也可用ip
    Output.xxx - xxx可以是kafka logstash elasticsearch
    enabled: true - 模組啟動
    hosts: - 輸出資料的位置
    topic: 發送資料到哪個主題
    max_message_bytes: 最大單筆紀錄
    logging.level: 有critical, error, warning, info,debug
    

什麼是Fluentd

  • Fluentd 提供了統一的資料中介層 (Unified Logging Layer),可將資料由不同來源匯入後,經過 Buffer 與資料處理後再將轉拋到所設定的目的地,可大幅度降低系統間資料傳遞的複雜度,所有的 Log 都是 Json 格式,而且沒有 Schema 限制

image

安裝Fluentd

  • curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh sh
  • systemctl start td-agent.service
  • systemctl status td-agent.service

Fluentd套件

  • Fluentd 可透過安裝外部 plugin 來擴充功能,可到 Fluentd 官網查詢可安裝列表,之後使用 td-agent-gem 指令來安裝
  • td-agent-gem install xxxxxx

Fluentd設定

  • td-agent 的設定檔位於/etc/td-agent/td-agent.conf
  • source : 資料輸入(Input)來源設定
  • match : 將 tag 符合 pattern 的資料輸出(Output)到設定的目的地。
  • filter : 資料處理與過濾方式。
  • 還有其他如 parse,format,buffer 等處理區間。
  • Fluentd (td-agent) 服務啟用後,預設會開啟 127.0.0.1:24230, 0.0.0.0:24224 與 0.0.0.0:8888 這三個 Port。分別介紹一下這些 Port 的作用:
  • 第一個 127.0.0.1:24230 是 Debug Agent,預設僅開放本機連線,Log 才不會被看光光,可以透過 fluent-debug 進行連線操作。