温馨提示×

ubuntu filebeat数据传输方式

小樊
41
2025-11-17 08:20:23
栏目: 智能运维

Ubuntu 上 Filebeat 的数据传输方式

主要传输方式与典型场景

  • 直接到 Elasticsearch:适合简单汇聚与快速检索,配置少、延迟低。示例输出到本机 http://localhost:9200,并按日期创建索引。
  • 经由 Logstash 中转:适合需要**过滤、解析、丰富(如 Grok、Date、GeoIP)**与多路分发的场景。Filebeat 向 Logstash 5044 发送,Logstash 处理后写入 Elasticsearch 或其他目标。
  • 写入 Redis 队列:适合解耦采集与处理、削峰填谷与跨系统传递。Filebeat 将事件写入 Redis List,由下游消费者(如 Logstash/自研程序)读取处理。
  • 写入 Apache Kafka:适合高吞吐、多消费者与流式处理链路。Filebeat 作为生产者写入 Kafka Topic,后续由 Logstash 或其他消费者处理。

快速配置示例

  • 直接到 Elasticsearch

    filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /var/log/*.log
    
    output.elasticsearch:
      hosts: ["localhost:9200"]
      index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
    

    说明:将日志直接写入本机 ES,按版本与日期滚动索引。

  • 经由 Logstash Filebeat 配置:

    filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /var/log/*.log
    
    output.logstash:
      hosts: ["localhost:5044"]
    

    Logstash 配置(示例):

    input { beats { port => 5044 } }
    filter {
      grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }
      date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }
    }
    output { elasticsearch { hosts => ["localhost:9200"] index => "filebeat-%{+YYYY.MM.dd}" } }
    

    说明:Filebeat 向 5044 发送,Logstash 解析后再写入 ES。

  • 写入 Redis

    filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /var/log/*.log
    
    output.redis:
      hosts: ["127.0.0.1:6379"]
      key: "filebeat-logs"
    

    验证:

    redis-cli
    > KEYS *
    > LRANGE filebeat-logs 0 -1
    

    说明:将事件写入 Redis 列表,键名为 filebeat-logs

  • 写入 Kafka

    filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /var/log/*.log
    
    output.kafka:
      hosts: ["kafka-broker1:9092","kafka-broker2:9092"]
      topic: "filebeat-logs"
      codec.json:
        pretty: false
        escape_html: false
    

    说明:Filebeat 作为生产者写入 Kafka topic: filebeat-logs,后续由消费者处理。

选型建议与注意事项

  • 选择建议
    • 需要快速落地与检索:优先 Elasticsearch 直写
    • 需要复杂解析与治理:使用 Logstash 中转。
    • 需要解耦与削峰:引入 Redis/Kafka 作为缓冲与队列。
  • 重要注意事项
    • Filebeat 同一实例通常只启用一个输出(例如不能同时开启 output.elasticsearch 与 output.logstash),需按链路选择单出口。
    • 生产环境建议开启 TLS/认证(Elasticsearch/Logstash/Kafka/Redis 均支持),并妥善管理证书与密钥。
    • 合理设置 索引生命周期管理 ILM索引模板,避免映射爆炸与滚动策略不当。
    • 启动前使用 filebeat test config 校验配置,部署后用 journalctl -u filebeat -f/var/log/filebeat/filebeat 查看运行日志。

0