请描述 Logstash 与 Beats 之间的集成方式,以及 Logstash 通过何种机制从 Beats 接收数据?
考察说明
考查对 Logstash 与 Beats 协同工作方式及数据接收链路的理解。
回答思路
- 【回答框架 1】Beats 是轻量级数据采集器,Logstash 作为集中处理服务器。两者集成通过 Logstash 的 Beats input 插件实现,该插件监听 TCP 端口(默认 5044),接收 Beats 发送的 Event 数据。
- 【回答框架 2】Beats 启动时配置输出为 Logstash,并指定主机和端口。Beats 与 Logstash 之间的通信协议是 lumberjack,Beats 将数据封装为事件批量发送,支持 SSL 加密传输,保证安全性。
- 【回答框架 3】Logstash 的 Beats input 插件解析接收到的数据,并设置内部字段(如 host、beat.name 等),然后数据进入 filter 阶段进行加工处理,最后输出到目标存储系统。
- 【回答框架 4】为了确保可靠传输,Beats 与 Logstash 之间存在 ACK 确认机制,Logstash 成功处理事件后会返回确认,Beats 收到确认后才会删除本地缓存,否则会重试发送,保障数据不丢失。
- 【回答框架 5】高可用场景中,Logstash 可以配置多个节点并用负载均衡分发,Beats 支持配置多个 Logstash 主机,实现故障转移。
- 【关键点 1】Beats 通过 lumberjack 协议与 Logstash 通信,默认端口 5044。
- 【关键点 2】Logstash 使用 Beats input 插件接收数据,并支持 SSL 加密。
- 【关键点 3】通过 ACK 确认机制保障数据可靠传输,避免丢失。
- 【关键点 4】Beats 可配置多台 Logstash 主机实现负载均衡与故障转移。
- 【易错点 1】不要误认为 Beats 直接通过 HTTP 与 Logstash 通信,实际是 TCP 上的 lumberjack 协议。
- 【易错点 2】不能假设数据实时到达,Beats 有内部缓冲和重试机制,可能导致轻微延迟。
- 【易错点 3】配置 SSL 时需确保证书匹配,否则连接失败。