温馨提示×

filebeat如何与ubuntu的ELK栈配合使用

小樊
42
2025-11-15 09:03:33
栏目: 智能运维

在 Ubuntu 上,Filebeat 通常作为日志采集端,与 ELK 栈的 Logstash 与 Elasticsearch 配合,将数据送入 ES 并在 Kibana 中展示。下面给出两种常用架构与落地步骤。


架构与端口规划

  • 架构一 Filebeat → Logstash → Elasticsearch → Kibana
    • 组件与端口:Filebeat(客户端采集)、Logstash(端口5044接收 Beats)、Elasticsearch(端口9200)、Kibana(端口5601
    • 适用:需要过滤、解析、丰富日志的场景
  • 架构二 Filebeat → Elasticsearch → Kibana
    • 适用:日志结构简单、希望快速接入与展示的场景
  • 典型部署:在 Ubuntu 18.04/20.04/22.04 上分别部署 ES、Logstash、Kibana 与 Filebeat,网络与防火墙开放相应端口。

安装与最小配置

  • 安装 Filebeat(Ubuntu APT 源)
    • 导入 GPG 并添加 Elastic 源(以 7.x 为例,可按需替换为 8.x
      • wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
      • echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
      • sudo apt-get update && sudo apt-get install filebeat
  • 最小配置示例(Filebeat → Logstash)
    • /etc/filebeat/filebeat.yml
      • filebeat.inputs:
        • type: log enabled: true paths:
          • /var/log/*.log
      • output.logstash:
        • hosts: [“192.0.2.10:5044”] # 替换为 Logstash 地址
  • 最小配置示例(Filebeat → Elasticsearch)
    • /etc/filebeat/filebeat.yml
      • filebeat.inputs:
        • type: log enabled: true paths:
          • /var/log/*.log
      • output.elasticsearch:
        • hosts: [“192.0.2.11:9200”] # 替换为 ES 地址
  • 启动与开机自启
    • sudo systemctl start filebeat
    • sudo systemctl enable filebeat
  • 版本建议:保持 Filebeat、Logstash、Elasticsearch、Kibana 版本一致,避免兼容性问题。

Logstash 与 Elasticsearch 配置要点

  • Logstash 接收并输出到 ES(示例)
    • /etc/logstash/conf.d/filebeat.conf
      • input { beats { port => 5044 } }
      • filter {

        可添加 grok、mutate、date 等处理

        }
      • output { elasticsearch { hosts => [“192.0.2.11:9200”] index => “filebeat-%{+YYYY.MM.dd}” } }
  • 启动 Logstash
    • sudo systemctl start logstash
    • sudo systemctl enable logstash
  • 安全与认证(如启用)
    • ES 开启安全后,Filebeat 输出需配置 username/password;Kibana 连接也需凭据
      • output.elasticsearch:
        • hosts: [“elasticsearch:9200”]
        • username: “elastic”
        • password: “your_password”
      • setup.kibana:
        • host: “kibana:5601”
        • username: “kibana_system”
        • password: “your_password”
  • 索引模板与仪表盘(可选)
    • Filebeat 可自动加载索引模板与示例仪表盘(setup.template.、setup.dashboards.),便于快速可视化。

Kibana 可视化与常见问题

  • 创建索引模式
    • 访问 http://<kibana_host>:5601,进入 Stack Management → Index Patterns,创建以 filebeat-* 或自定义前缀开头的索引模式,设置时间字段为 @timestamp
  • 验证数据
    • 在 Kibana Discover 查看日志;或在 ES 检查索引:
      • curl http://localhost:9200/_cat/indices?v
      • curl -XGET ‘http://localhost:9200/filebeat-*/_search?pretty’
  • 常见问题与排查
    • 多行堆栈合并:使用 multiline 将异常堆栈合并为单条事件,便于排查
      • filebeat.inputs:
        • type: log enabled: true paths: [“/var/log/app/*.log”] multiline.pattern: ‘^[’ multiline.negate: true multiline.match: after
    • 启动顺序:先启动 Logstash,再启动 Filebeat
    • 路径与权限:确保 Filebeat 对日志路径有读取权限(如 /var/log/
    • 版本匹配:组件版本不一致易导致字段或插件兼容问题
    • 证书与 TLS:跨主机传输建议启用 TLS,在 Filebeat 的 tls.certificate_authorities 中指定 CA 证书路径。

0