如何配置Filebeat使得不匹配file_selectors的AWS SQS消息不被删除
解决方案
Filebeat 7.13及更高版本的aws-s3输入组件已原生支持该需求,仅需在配置中新增skip_delete_on_non_matching: true参数即可。
开启该参数后,Filebeat只会删除匹配file_selectors规则且处理成功的SQS消息,不匹配规则的消息不会被删除,等待可见性超时后会回到队列,供其他监听队列的Filebeat实例消费。
修改后的配置参考如下:
filebeat.inputs: - type: aws-s3 queue_url: https://sqs.us-east-2.amazonaws.com/aws-id/queue-name gzip: true skip_delete_on_non_matching: true # 新增该配置项 file_selectors: - regex: '.*-mytype.log.*'
注意事项
skip_delete_on_non_matching参数默认值为false,这就是你当前遇到所有消息都被删除的原因- 建议同步调整SQS队列的可见性超时配置,将值设置为大于单个日志文件的最大处理时长,避免正在处理的消息提前回到队列导致重复消费
- 如果你使用的Filebeat版本低于7.13,只能通过升级版本实现该需求,旧版本没有原生支持对应能力
内容的提问来源于stack exchange,提问作者r-sniper
相关产品推荐
相关产品推荐

