可行性与总体架构
支持。常见做法是在每台需要采集的 Ubuntu 主机上安装 Filebeat,读取本机日志文件后,直接发送到集中端的 Elasticsearch 或经由 Logstash 中转;也可在集中端用 **Logstash 的 Beats 输入插件(默认端口 5044)**接收多台主机的日志。为便于识别来源,建议在采集端为事件添加如 host 等字段标记。若出于统一配置与管控考虑,也可将日志目录通过 NFS/Samba/SSHFS 挂载到采集端本地后由 Filebeat 读取。
快速实现步骤
- 在 Ubuntu 上安装 Filebeat(APT 方式示例):更新索引、添加 Elastic GPG 密钥、添加 APT 仓库(选择与 ES 一致的 7.x/8.x 主版本)、安装包。完成后配置文件默认位于 /etc/filebeat/filebeat.yml。
- 配置采集输入(示例为系统与应用日志):
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/apache2/*.log
fields: {host: “remote-server-ip”} # 标记来源主机
- 配置输出目标:
- 直连 Elasticsearch(示例):
- output.elasticsearch:
- hosts: [“your_es_host:9200”]
- index: “filebeat-%{[agent.version]}-%{+yyyy.MM.dd}”
- 或输出到 Logstash(示例):
- output.logstash:
- hosts: [“your_logstash_host:5044”]
- 启动与验证:
- 启动服务:sudo systemctl start filebeat && sudo systemctl enable filebeat
- 查看运行日志:sudo journalctl -u filebeat -f
- 在 ES 或 Kibana 检查是否生成以 filebeat-* 为前缀的索引与数据。
常见方案对比
| 方案 |
网络与端口 |
适用场景 |
优点 |
注意点 |
| Filebeat 直连 ES |
到 ES 的 9200 |
架构简单、日志直写 |
部署快、链路短 |
需开启 ES 安全与认证;证书校验要正确 |
| Filebeat → Logstash → ES |
Filebeat 到 Logstash 5044;Logstash 到 ES 9200 |
需要过滤、脱敏、路由、丰富处理 |
处理逻辑灵活 |
多一跳网络与组件,需保障 Logstash 稳定性 |
| 挂载远程日志目录后采集 |
采集端本地读取挂载点 |
无法在远端安装 Filebeat 时的折中 |
不改远端系统服务 |
依赖共享存储可靠性与权限;注意文件句柄与轮转 |
安全与运维要点
- 版本兼容:Filebeat 与 Elasticsearch/Kibana 主版本需一致(如均为 7.x 或 8.x),避免兼容性问题。
- 加密与认证:生产环境启用 TLS/SSL(如 ssl.verification_mode: full、配置 CA/客户端证书),并为 ES/Logstash 配置 用户名/密码或 API Key,在 Filebeat 输出中对应设置。
- 网络与防火墙:仅放通必要端口(如 9200/5044),并对来源 IP 做白名单限制(如 ufw)。
- 权限与运行账户:确保 Filebeat 对日志文件具备读取权限;可使用非 root 专用账户运行。
- 多租户与可观测性:用 fields/tags 标记来源;在 Kibana 创建 filebeat-* 索引模式查看数据;必要时使用 Filebeat 模块与 setup 命令加载仪表板与索引生命周期管理。