Ubuntu 上 Filebeat 自定义配置实操指南
一 配置前准备与关键路径
- 配置文件默认路径:/etc/filebeat/filebeat.yml;通过 APT 安装后,相关目录通常为:配置目录 /etc/filebeat/、模块目录 /usr/share/filebeat/modules/、数据存储目录 /var/lib/filebeat/(记录采集进度)。如使用 Snap 安装,路径可能不同。修改配置后建议先校验再重启服务。服务管理推荐使用 systemd。
二 自定义配置步骤
- 编辑主配置
- 打开配置:sudo nano /etc/filebeat/filebeat.yml
- 常用自定义项:
- 定义采集输入(inputs):选择 log/filestream、设置 paths、开启/禁用、添加自定义 fields 等。
- 配置输出(output):选择 Elasticsearch 或 Logstash,设置 hosts、索引名、认证等。
- 使用处理器(processors):如 add_host_metadata、add_cloud_metadata、drop/rename 字段等。
- 索引与 ILM:自定义 index 名称,或关闭 setup.ilm.enabled 并配置 setup.template 以使用自定义索引模板。
- 校验与启动
- 校验配置:sudo filebeat test config
- 前台调试(可选):sudo filebeat -e -c /etc/filebeat/filebeat.yml
- 重启服务:sudo systemctl restart filebeat
- 查看状态与日志:sudo systemctl status filebeat;sudo journalctl -u filebeat -f
- 模块方式(可选)
- 启用模块:sudo filebeat modules enable nginx
- 模块配置目录:/etc/filebeat/modules.d/(可按需调整其中的 yml 文件)
- 若使用模块并直连 ES,首次可运行:sudo filebeat setup(加载模板/仪表板;生产环境谨慎执行)
三 常见自定义场景示例
- 采集系统日志并按级别拆分索引
- 思路:用 when.contains 条件为不同日志级别写入不同索引,便于检索与保留策略管理。
- 示例要点:
- inputs 采集 /var/log/syslog 等;processors 添加 add_host_metadata。
- output.elasticsearch 使用 indices 条件索引;按需关闭 ILM 并配置自定义模板。
- 采集应用日志并处理多行堆栈
- 思路:使用 multiline 将 Java/Python 堆栈合并为单事件;为事件添加业务 fields 便于溯源。
- 示例要点:
- type: log + paths;multiline.pattern/negate/match 组合识别首行;
- fields 如 app_name/service,配合 Kibana 视图做维度分析。
- 采集 Nginx 配置文件变更(配置审计)
- 思路:用 filestream 监控 /etc/nginx/ 下的配置与站点文件,输出到控制台或 ES 做变更审计。
- 示例要点:
- type: filestream、paths 覆盖主配置与 sites-available/sites-enabled;
- 添加字段如 service: nginx;调试阶段可用 output.console pretty: true。
- 输出到 Logstash 集中处理
- 思路:Filebeat 作为轻量采集端,将事件发送至 Logstash(端口 5044),由 Logstash 做复杂解析与转发。
- 示例要点:
- 注释或删除 ES 输出段;启用 output.logstash 并设置 hosts: [“logstash:5044”];
- 跨主机时建议开启 SSL/TLS 认证。
四 生产与安全最佳实践
- 可靠性与性能
- 调整 harvester_buffer_size、bulk_max_size、启用 pipelining;
- 配置 queue.mem.events 与退避策略,保障高峰与故障恢复;
- 关注 registry 状态与 logging.metrics,监控采集健康度。
- 安全与合规
- 传输加密:为 Elasticsearch/Logstash 输出启用 SSL/TLS;
- 访问控制:为 ES 输出配置 username/password 或 API Key;
- 凭据管理:使用 Keystore 存储敏感信息;
- 合规审计:对关键配置变更(如 /etc/nginx/)进行采集与留存。
五 排错与验证清单
- 配置校验:sudo filebeat test config(语法与引用检查)
- 服务状态:sudo systemctl status filebeat;实时日志:sudo journalctl -u filebeat -f
- 输出连通性:
- ES:curl -X GET “localhost:9200/_cat/indices?v”
- Logstash:在 Logstash 控制台观察 5044 端口事件接入
- 模块与模板:首次接入模块可用 sudo filebeat setup(注意生产索引与写入策略)