Filebeat能否向第三方采集器转发日志及配置方法
结论
完全支持。Filebeat 没有强制绑定 Logstash 或 Elasticsearch,原生内置多类通用协议的输出插件,只要第三方日志采集器支持对应接入协议即可直接对接,无需额外改造。
具体配置实现步骤
- 第一步:确认第三方采集器的接入协议
先核对你使用的第三方采集器开放的接收协议,Filebeat原生支持对接的通用协议包括TCP、UDP、Syslog、HTTP/HTTPS、Kafka、Redis等,覆盖绝大多数第三方日志采集产品的接入方式。如果是自定义私有协议,也可以通过自定义输出插件、控制台输出转发的方式适配。 - 第二步:修改Filebeat配置文件
Filebeat主配置文件默认路径为Linux系统下的/etc/filebeat/filebeat.yml,Windows、macOS下为安装目录内的filebeat.yml。先注释掉配置文件中原有的Elasticsearch、Logstash输出段,再根据第三方支持的协议添加对应输出配置。
以下是几种常见场景的配置示例:- 对接TCP/UDP协议的第三方采集器
# 注释默认输出配置 # output.elasticsearch: # hosts: ["localhost:9200"] # output.logstash: # hosts: ["localhost:5044"] # TCP输出配置,UDP场景将output.tcp替换为output.udp即可 output.tcp: host: "第三方采集器服务IP" port: 第三方采集器TCP监听端口 # 开启SSL传输时取消下方注释 # ssl.enabled: true # ssl.certificate_authorities: ["/etc/filebeat/certs/ca.pem"] codec: json # 统一用JSON格式输出,方便第三方解析字段- 对接Syslog协议的第三方采集器
output.syslog: host: "第三方采集器服务IP" port: 514 # 替换为实际的Syslog监听端口 protocol: tcp # 可根据实际情况替换为udp severity: info facility: local0 codec: json- 对接HTTP/HTTPS接口的第三方采集器
output.http: url: "http://第三方采集器IP:端口/日志接收接口路径" method: "POST" headers: Content-Type: "application/json" # 接口需要鉴权时取消下方注释填写账号密码 # username: "鉴权用户名" # password: "鉴权密码" codec: json batch_max_events: 100 # 根据第三方接口的批次处理上限调整- 对接Kafka作为中转的第三方采集链路
output.kafka: hosts: ["Kafka节点1IP:9092", "Kafka节点2IP:9092"] topic: "日志存储的目标Topic名称" partition.round_robin: reachable_only: true required_acks: 1 compression: gzip codec: json - 第三步:校验配置并重启生效
- 执行配置语法校验命令,避免格式错误:
filebeat test config -c /etc/filebeat/filebeat.yml,返回Config OK即为语法校验通过。 - 重启Filebeat服务加载新配置:Linux系统执行
systemctl restart filebeat,Windows系统在服务管理器中找到Filebeat服务选择重启即可。 - 执行输出连通性校验:
filebeat test output,返回连接成功的提示即代表链路打通,日志会正常转发至第三方采集器。
- 执行配置语法校验命令,避免格式错误:
注意:如果第三方采集器使用Filebeat原生不支持的私有协议,可基于官方输出插件开发规范编译自定义输出插件,也可配置
output.console将日志输出到标准输出,通过侧边进程转发的方式完成对接。
内容的提问来源于stack exchange,提问作者dabro
相关产品推荐
相关产品推荐

