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