Filebeat與Fluentd安裝與說明
什麼是Filebeat
- 文字紀錄收集器,安裝在業務伺服器上做為代理來監測紀錄檔,並把紀錄檔發送到logstash elasticsearch kibana
- Logstash 依賴java因此容易消耗大量資源 但filebeats基於golang 無依賴,設定檔簡單,格式明瞭 相較logstash更輕量,資源吃的少
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 限制
安裝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 進行連線操作。