Filebeat和Logstash是Elastic Stack(以前稱為ELK Stack)中的兩個關鍵組件,它們通常一起使用以收集、處理和轉發日志數據。以下是在CentOS上配置Filebeat與Logstash協同工作的步驟:
首先,你需要安裝Elasticsearch、Logstash和Kibana。你可以從Elastic官方網站下載適用于CentOS的安裝包。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo apt-get install logstash
sudo apt-get install kibana
Filebeat用于收集日志文件并將其發送到Logstash或Elasticsearch。
sudo apt-get install filebeat
編輯Filebeat配置文件 /etc/filebeat/filebeat.yml:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.logstash:
hosts: ["localhost:5044"]
這個配置告訴Filebeat收集 /var/log/*.log 目錄下的所有日志文件,并將它們發送到運行在 localhost:5044 的Logstash實例。
Logstash用于處理從Filebeat接收到的日志數據。
創建一個新的Logstash配置文件 /etc/logstash/conf.d/filebeat.conf:
input {
beats {
port => 5044
}
}
filter {
# 在這里添加你的過濾器配置
# 例如,解析JSON日志:
# json {
# source => "message"
# }
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "filebeat-%{+YYYY.MM.dd}"
}
}
這個配置告訴Logstash從 localhost:5044 接收數據,并將處理后的數據發送到Elasticsearch。
啟動并啟用Elasticsearch、Logstash和Kibana服務:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl start logstash
sudo systemctl enable logstash
sudo systemctl start kibana
sudo systemctl enable kibana
確保所有服務都在運行:
sudo systemctl status elasticsearch
sudo systemctl status logstash
sudo systemctl status kibana
檢查Filebeat是否正在發送數據到Logstash:
sudo filebeat modules enable system
sudo filebeat setup
sudo systemctl restart filebeat
查看Logstash日志以確保它正在接收數據:
sudo tail -f /var/log/logstash/logstash-plain.log
通過這些步驟,你應該能夠在CentOS上成功配置Filebeat與Logstash協同工作。根據你的具體需求,你可能需要調整配置文件中的路徑、端口和其他設置。