在CentOS上,Filebeat与Logstash协同工作流程及配置如下:
-
安装组件
- 安装Elastic官方YUM仓库:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 enabled=1 EOF - 安装Filebeat和Logstash:
sudo yum install filebeat logstash
- 安装Elastic官方YUM仓库:
-
配置Filebeat
编辑/etc/filebeat/filebeat.yml,指定输出到Logstash:filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log # 监控日志路径,可自定义 output.logstash: hosts: ["localhost:5044"] # Logstash监听地址及端口 -
配置Logstash
创建/etc/logstash/conf.d/filebeat.conf,定义输入、过滤和输出:input { beats { port => 5044 # 接收Filebeat数据的端口 } } filter { # 示例:解析Apache日志(按需添加) if [message] =~ /GET|POST/ { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] } } } output { elasticsearch { hosts => ["localhost:9200"] # 输出到Elasticsearch index => "filebeat-%{+YYYY.MM.dd}" # 索引格式 } } -
启动服务
sudo systemctl start filebeat sudo systemctl enable filebeat sudo systemctl start logstash sudo systemctl enable logstash -
验证配置
- 检查服务状态:
sudo systemctl status filebeat sudo systemctl status logstash - 查看Logstash日志确认数据接收:
sudo journalctl -u logstash -f - 通过Kibana访问Elasticsearch,查看索引数据是否生成。
- 检查服务状态:
说明:
- Filebeat负责轻量级日志采集,Logstash负责数据处理(如解析、过滤、转换),最终将结果存储到Elasticsearch。
- 可通过调整
filter插件实现不同日志格式的解析,或通过output插件将数据发送到其他目标(如Kafka、文件等)。