商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > ubuntu中filebeat如何集成到其他系统

ubuntu中filebeat如何集成到其他系统

  发布于2026-07-07 阅读(0)

扫一扫,手机访问

在使用Ubuntu时,Filebeat其实是挺灵活的工具,它可以很轻松地接入各种系统,像是Elasticsearch、Logstash、Kafka、Redis,甚至HTTP接口。下面具体聊聊怎么落地,以及关键的配置。

ubuntu中filebeat如何集成到其他系统

一、安装与基础配置

先说说安装。以Ubuntu 20.04或22.04为例,用Elastic官方APT源来装就行:

  • 导入GPG密钥并添加源(这里是8.x版本,需要其他版本自行替换):
    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
    sudo apt-get update && sudo apt-get install filebeat
  • 主配文件:/etc/filebeat/filebeat.yml
  • 运维命令少不了:启动用sudo systemctl start filebeat,开机自启是sudo systemctl enable filebeat。查看状态和日志,分别用sudo systemctl status filebeat和sudo journalctl -u filebeat -f。
  • 建议把模块配置放在 /etc/filebeat/modules.d/ 目录下,然后在filebeat.yml里通过 filebeat.config.modules 来加载,这样管理起来更干净。

二、常见集成方式

下面说正题,怎么把数据送到不同的地方去。

直连Elasticsearch

适用场景是日志量不大、不需要做复杂处理的情况。配置起来很直接:在output.elasticsearch.hosts里指定ES的地址和端口;如果需要认证,加上username和password。索引的管理可以用索引模板或者ILM策略,比如写成filebeat-%{+yyyy.MM.dd}这样。

发送至Logstash

如果你需要过滤、丰富、脱敏之类的处理,那Logstash就是标配了。Filebeat这边配置output.logstash.hosts指定目标地址,Logstash那边用input { beats { port => 5044 } }来接收。注意端口要一致。

写入Redis(List)

Redis在这里的作用是削峰填谷和缓冲,适合流量突增或者跨机房传输的场景。配置也很简单,指定hosts、key和db就行,密码是可选的。

写入Kafka

高吞吐量、多个消费者同时消费,或者数据需要在多个系统间流转,那就选Kafka。配置时注意topic要统一,外部程序订阅同一个topic消费即可。codec.json.pretty建议设为false,减少不必要的负载。

调用HTTP接口

对接自研或第三方的日志接收API时,HTTP输出很实用。配置里指定hosts、method和path,测试环境可以暂时把ssl.verification_mode设为none,但生产环境必须开启TLS和证书校验,不能偷懒。

启用内置模块(Nginx、System、MySQL等)

Filebeat自带了一些模块,能自动发现日志路径、解析格式,甚至生成仪表板。启用也很简单:sudo filebeat modules enable nginx,然后按需修改对应的yml文件。如果直连ES,记得执行filebeat setup --pipelines --modules nginx来加载预处理的管道。如果数据先过Logstash,那解析任务交给Logstash处理就好,避免重复劳动。

三、典型架构示例

实际落地的时候,有几套典型架构值得参考:

  • Filebeat → Logstash → Elasticsearch → Kibana:这是最常见的方案。Logstash负责解析和丰富数据,ES负责存储和检索,Kibana做可视化。关键端口要打通:Filebeat到Logstash用5044,Logstash到ES用9200,Kibana到ES也是9200,Kibana自己占用5601。
  • Filebeat → Redis → Logstash → Elasticsearch:把Redis当作缓冲层,适合流量忽高忽低或者跨机房传输的场景。Filebeat的output.redis.key和Logstash的input.redis.data_type要对应上,Logstash那边用list方式读。
  • Filebeat → Kafka → Logstash → Elasticsearch:高吞吐量和多消费者的场景,Kafka能很好地承担起中转的角色。Filebeat配置topic,Logstash用kafka input来消费,codec设为json。

四、安全与运维要点

最后聊聊安全与运维,这绝对不是可有可无的补丁,而是整个链路顺畅运行的基石。

  • 认证与加密:所有输出端——ES、Kafka、Redis、HTTP——都建议开启TLS/SSL和凭据认证。Filebeat这边可以配置ssl.verification_mode、username/password、api_key等参数。
  • 网络与防火墙:只放开必要的端口,比如5044、6379、9092、9200、5601,同时限制来源IP。跨VPC或者公网传输,务必加密。
  • 资源与性能:根据日志量合理调整bulk_max_size、worker、queue.spool等参数。高峰期时,用Redis或Kafka做缓冲非常管用。
  • 模块与管道:直连ES时,用filebeat setup初始化索引模板和仪表板;如果数据先过Logstash,那解析和预处理任务就交给Logstash,Filebeat只负责采集和传输。
  • 调试与验证:配置好之后,先用filebeat test config和filebeat test output检查配置和连通性。再用journalctl看Filebeat日志,同时去目标系统确认数据是否正常到达和处理。这样基本就能排查掉大部分问题了。
本文转载于:https://www.yisu.com/ask/79425391.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注