- 首页 >
- 问答 >
-
智能运维 >
- Filebeat在Ubuntu上的使用案例有哪些
Filebeat在Ubuntu上的使用案例有哪些
小樊
37
2025-12-22 21:30:35
Filebeat在Ubuntu上的常见使用案例
系统日志集中采集与解析
- 使用 Filebeat 的 System 模块统一采集 /var/log/auth.log、/var/log/syslog 等系统日志,借助模块内置的解析器完成字段提取与标准化。
- 典型架构:Filebeat → Logstash(可选)→ Elasticsearch → Kibana 展示与告警。
- 快速上手:
- 启用模块:sudo filebeat modules enable system
- 配置输出为 Logstash:在 filebeat.yml 中禁用 Elasticsearch 输出,启用 output.logstash.hosts: [“your_logstash:5044”]
- 重启服务:sudo systemctl restart filebeat
- Logstash 侧使用 beats 输入并针对 system.auth 等事件做 grok 解析与丰富。
Nginx 访问与错误日志采集
- 场景一(传统文本日志):采集 access.log / error.log,在 Filebeat 中定义 paths,直接输出到 Elasticsearch 或经 Logstash 处理;可按业务设置索引名与 ILM 策略。
- 场景二(JSON 日志):将 Nginx 日志格式调整为 JSON,在 Filebeat 启用 json.keys_under_root: true 将 JSON 字段提升为顶层,便于检索与分析。
- 示例要点:
- 文本日志 input 片段:
- type: log
enabled: true
paths: [“/var/log/nginx/*.log”]
tags: [“nginx”]
- JSON 日志关键配置:
- json.keys_under_root: true
- 输出到 ES 可自定义索引名,如:index: “filebeat-nginxlog-base-%{+yyyy.MM.dd}”。
Docker 容器日志采集
- 直接读取 Docker 容器日志文件(/var/lib/docker/containers),对容器输出进行结构化采集与转发。
- 配置示例:
- type: docker
containers.path: “/var/lib/docker/containers”
stream: “all”
json.overwrite_keys: true
fields:
app_name: “your_app_name”
- 输出可对接 Elasticsearch 或 Logstash,便于在 Kibana 按容器、镜像、服务维度进行检索与可视化。
多目标输出与缓冲队列
- 输出到消息队列(如 Redis)以解耦采集与后端处理,适合高并发与峰值削峰场景。
- 配置示例:
- output.redis:
- hosts: [“localhost:6379”]
- key: “filebeat_logs”
- 结合 Logstash 从 Redis 消费,进行二次解析、丰富与落库,提升整体可靠性与可扩展性。
部署与运维要点
- 安装方式:
- APT 安装:导入 Elastic GPG 密钥与仓库后执行 sudo apt-get install filebeat;适合 Ubuntu 20.04/22.04/24.04 等发行版。
- 服务管理:
- 使用 systemd:sudo systemctl start|enable|status filebeat;排查可用 journalctl -u filebeat -f。
- 目录与路径:
- 常见配置与数据目录:/etc/filebeat/filebeat.yml、/var/log/filebeat/;自定义数据目录便于多实例与版本并存。
- 模块与模板:
- 启用模块:sudo filebeat modules enable system(或 nginx 等);必要时执行 filebeat setup 初始化索引模板与仪表板。