下面是在 CentOS 7 / 8 上部署 Filebeat(Elastic Stack 的日志采集器) 的完整流程,适用于 RPM 包方式,也是官方推荐方式。
Filebeat 不需要 Java,如果你只是采集日志并发送到 ES 或 Logstash,可直接跳过。
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elastic.repo <<EOF
[elastic-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
如果你需要 7.x 版本,把
8.x改成7.x
sudo yum install filebeat -y
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.12.0-x86_64.rpm
sudo rpm -ivh filebeat-8.12.0-x86_64.rpm
sudo vi /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages
output.elasticsearch:
hosts: ["http://192.168.1.10:9200"]
# 可选:指定索引生命周期
setup.ilm.enabled: false
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
output.logstash:
hosts: ["192.168.1.20:5044"]
sudo filebeat setup -e \
-E output.logstash.enabled=false \
-E output.elasticsearch.hosts=["http://192.168.1.10:9200"] \
-E setup.kibana.host="http://192.168.1.10:5601"
sudo systemctl enable filebeat
sudo systemctl start filebeat
systemctl status filebeat
journalctl -u filebeat -f
filebeat test config
filebeat test output
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
journalctl -u filebeatenabled: true✅ CentOS 部署 Filebeat 核心步骤:
/etc/filebeat/filebeat.yml如果你需要:
可以直接告诉我你的架构,我可以给你定制配置。