温馨提示×

Filebeat在Ubuntu上的使用案例有哪些

小樊
37
2025-12-22 21:30:35
栏目: 智能运维

Filebeat在Ubuntu上的常见使用案例

系统日志集中采集与解析

  • 使用 Filebeat 的 System 模块统一采集 /var/log/auth.log、/var/log/syslog 等系统日志,借助模块内置的解析器完成字段提取与标准化。
  • 典型架构:Filebeat → Logstash(可选)→ ElasticsearchKibana 展示与告警。
  • 快速上手:
    • 启用模块: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”
  • 输出可对接 ElasticsearchLogstash,便于在 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 初始化索引模板与仪表板。

0