如何使用Filebeat进行远程日志收集
Filebeat远程收集日志,配置源路径或部署至本地,输出到Elasticsearch/Logstash;Logstash通过beats输入并过滤后写入Elasticsearch。启动验证数据,生产需启用SSL、认证授权及防火墙规则。
远程日志收集这事儿,Filebeat算是比较顺手的工具之一了。具体怎么搭?把关键步骤拆开来看。
1. 安装Filebeat
在需要收集日志的服务器上(无论是远程机器还是本地机器),先装好Filebeat。以CentOS为例,用包管理器直接搞定:
sudo yum install filebeat -y
装完之后,默认的配置文件藏在/etc/filebeat/filebeat.yml里。
2. 配置远程日志源(关键步骤)
要让Filebeat顺利拿到远程日志,有两种主流方案,可以根据实际场景灵活选择。
方案一:本地Filebeat直接指向远程目录
如果远程机器的日志可以通过NFS、Samba这类共享协议挂载到本地,那最简单——直接在filebeat.inputs里把paths指向挂载路径。比如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /mnt/remote_logs/*.log
# 假设/mnt/remote_logs是挂载的远程目录
方案二:远程服务器上单独部署Filebeat
如果远程机器不方便做共享挂载,或者有网络限制,那就直接在远程服务器上装一个Filebeat,让它把日志吐回本地的Elasticsearch或Logstash。配置上分为两步:先在远程机器的filebeat.inputs里指定本机日志路径,再设置output指向本地服务器:
# 远程服务器上的filebeat.inputs配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/remote_app/*.log
# 输出到本地服务器的Logstash(假设本地Logstash监听5044端口)
output.logstash:
hosts: ["your_local_server_ip:5044"]
需要提醒的是,本地服务器得先把Logstash的5044端口打开,不然数据送不过来。
3. 配置输出目标(Elasticsearch / Logstash)
日志收集完,得知道往哪送。两种常见选择:
直接送到Elasticsearch
如果日志量不大,不需要中间环节做复杂处理,可以直接配output.elasticsearch,把地址、端口、认证信息写清楚:
output.elasticsearch:
hosts: ["your_elasticsearch_host:9200"]
username: "elastic"
password: "your_password"
protocol: "https"
ssl.verification_mode: "full"
ssl.certificate_authorities: ["/path/to/ca.crt"]
送到Logstash(推荐用于复杂处理场景)
如果日志格式需要清洗、过滤、转换,那中间垫一层Logstash会更灵活:
output.logstash:
hosts: ["your_logstash_host:5044"]
ssl.certificate_authorities: ["/path/to/ca.crt"]
当然,Logstash那边得提前配好beats输入插件来接数据。
4. 配置Logstash接收
在Logstash服务器上,新建一个配置文件,比如filebeat_remote.conf,内容大致如下:
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["your_elasticsearch_host:9200"]
index => "remote_logs-%{+yyyy.MM.dd}"
}
stdout { codec => rubydebug }
}
启动命令写起来也不复杂:
nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/filebeat_remote.conf > /var/log/logstash/filebeat_remote.out &
5. 启动与验证
配置都放好了,就该让服务跑起来了。
先启动Filebeat并设置开机自启:
sudo systemctl start filebeat
sudo systemctl enable filebeat
检查一下状态,确保没有报错:
sudo systemctl status filebeat
如果遇到问题,可以用journalctl看详细日志:
sudo journalctl -u filebeat -f
最后,去Elasticsearch或者Kibana里验证一下数据是否到位。比如在Kibana的Dev Tools里跑个查询:
GET /remote_logs-*/_search
{
"query": { "match_all": {} }
}
如果能返回日志数据,说明整套链路已经跑通了。
6. 安全配置(生产环境必做)
生产环境下,安全这块不能马虎。
启用SSL/TLS加密
给Elasticsearch和Logstash配上SSL证书,Filebeat那边指定证书路径,保证数据在传输过程中不被劫持或篡改。
认证与授权
如果Elasticsearch或Logstash启用了X-Pack之类的安全功能,Filebeat配置里需要写上用户名和密码,并且确保这个用户有足够的权限。
防火墙规则
别把端口忘在脑后。远程服务器上的日志目录、Elasticsearch的9200端口、Logstash的5044端口,都得在防火墙里放行:
sudo firewall-cmd --permanent --zone=public --add-port=9200/tcp
sudo firewall-cmd --permanent --zone=public --add-port=5044/tcp
sudo firewall-cmd --reload
这些步骤都走一遍,远程日志收集的能力就算真正落地了。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















