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协同工作。根据你的具体需求,你可能需要调整配置文件中的路径、端口和其他设置。