在CentOS上,Filebeat与Logstash协同工作流程及配置如下:
安装组件
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
sudo yum install filebeat logstash
配置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
sudo journalctl -u logstash -f
说明:
filter
插件实现不同日志格式的解析,或通过output
插件将数据发送到其他目标(如Kafka、文件等)。