在CentOS系統中,Filebeat和Logstash協同工作以實現日志數據的集中收集、處理和轉發。以下是它們協同工作的基本原理和步驟:
Filebeat的工作原理
- 輸入(Input):負責監控日志文件或目錄的變化,如文件被移動、刪除或創建新文件,并將這些信息提供給Harvester使用。
- Harvester:負責監控單個日志文件內容的變化,如是否新加了一行數據,是否讀到了EOF等。
- Spooler:用于將Harvester“收割”到的新事件(日志行)發送到指定目的地,如Elasticsearch、Kafka、Logstash等。
Logstash的工作原理
- 輸入(Input):使用Input插件將數據輸入至Logstash中,如從文件系統中的文件讀取數據。
- 過濾(Filter):過濾器插件在Logstash管道中的中間處理設備,可以對事件進行解析和轉換。
- 輸出(Output):輸出是Logstash管道的最后階段,將修改后的事件輸出到任何目的地。
Filebeat與Logstash的協同工作
- 安裝和配置Filebeat:
- 在CentOS系統上安裝Filebeat,編輯Filebeat的配置文件(通常位于
/etc/filebeat/filebeat.yml),指定輸出插件為Logstash,并提供Logstash的地址和端口。
- 配置Logstash:
- 編輯Logstash的配置文件(通常位于
/etc/logstash/conf.d/目錄下),創建一個新的配置文件,比如filebeat.conf,并在其中定義輸入、過濾和輸出插件。
- 在輸入插件中配置Filebeat的地址和端口,例如:
input { beats { port 5044 } }。
- 在過濾插件中添加所需的過濾器邏輯,如解析日志格式、提取字段等。
- 在輸出插件中配置將處理后的數據發送到Elasticsearch或其他目的地。
- 啟動Filebeat和Logstash:
- 使用以下命令啟動Filebeat服務,并設置開機自啟:
sudo systemctl start filebeat
sudo systemctl enable filebeat
- 使用以下命令啟動Logstash服務,并設置開機自啟:
sudo systemctl start logstash
sudo systemctl enable logstash
- 驗證配置:
- 確保Filebeat和Logstash都在運行,并且Filebeat能夠成功地將日志發送到Logstash??梢酝ㄟ^查看Filebeat和Logstash的日志文件來驗證配置是否正確。
通過以上步驟,Filebeat可以實時收集日志數據,并將其發送到Logstash進行進一步的處理和分析。這種協同工作模式有效地分散了日志處理的負載,提高了系統的可擴展性和可靠性。