Filebeat和Logstash是Elastic Stack(以前称为ELK Stack)中的两个关键组件,它们通常一起使用来收集、处理和转发日志数据。以下是在CentOS上配置Filebeat与Logstash配合使用的步骤:
首先,你需要在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
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
sudo yum install filebeat
sudo yum install 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
,用于接收Filebeat发送的数据并进行处理。
input {
beats {
port => 5044
}
}
filter {
# 在这里添加你的过滤器配置
# 例如,解析JSON日志
if [type] == "json" {
json {
source => "message"
}
}
}
output {
# 输出到Elasticsearch
elasticsearch {
hosts => ["localhost:9200"]
index => "filebeat-%{+yyyy.MM.dd}"
}
}
启动并启用Filebeat和Logstash服务。
sudo systemctl start filebeat
sudo systemctl enable filebeat
sudo systemctl start logstash
sudo systemctl enable logstash
确保Filebeat和Logstash都在运行,并且数据正在正确传输。
sudo systemctl status filebeat
sudo systemctl status logstash
访问Elasticsearch的Kibana界面(通常是 http://your_elasticsearch_host:5601
),查看是否有新的索引被创建。
如果数据没有正确传输,可以查看Filebeat和Logstash的日志文件进行调试。
/var/log/filebeat/filebeat
/var/log/logstash/logstash-plain.log
通过这些步骤,你应该能够在CentOS上成功配置Filebeat与Logstash配合使用,实现日志数据的收集和处理。