amazon-s3 - 如果消息与 file_selectors 不匹配,则将 Filebeat 配置为不删除 AWS SQS 消息
问题描述
场景:
AWS S3 配置为向 SQS 队列发送事件通知
Filebeataws-s3-plugin
用于通过 SQS 队列从 S3 中提取日志
filebeat.inputs:
- type: aws-s3
queue_url: https://sqs.us-east-2.amazonaws.com/aws-id/queue-name
gzip: true
file_selectors:
- regex: '.*-mytype.log.*'
Filebeat 删除队列中存在的所有消息,而它应该只处理和删除与file_selectors
正则表达式匹配的消息
问题:如果消息与正则表达式不匹配,如何配置不删除
filebeat
SQS队列消息file_selectors
?
附言
我试图实现的用例是
- AWS S3 通知 -> SQS 队列(所有类型的文件)
- 使用相同队列配置的多个 filebeat 实例
- Filebeat-1:
file_selectors
为 file_type_1 配置。文件节拍输出:Logstash - Filebeat-2:
file_selectors
为 file_type_2 配置。文件节拍输出:Elasticsearch
- Filebeat-1:
解决方案
@sniper 我认为配置不会以您希望它使用单个 SQS 队列的方式工作。每个 filebeat 输入将尝试从队列中读取所有消息并用于file_selectors
决定要下载哪些文件,但会读取并忽略所有其他消息。
您可以使用的一种模式是使用 SNS 和 SQS 进行扇出。S3 在上传文件时将事件发布到 SNS。每个对应于一个 filebeat 输入的多个 SQS 队列订阅到 SNS。 https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html
推荐阅读
- java - Java/Mysql 从一个表中选择主键值并将它们作为外键插入到另一个表中
- ruby - 如何更改 GEM 包管理器版本,而不是特定的 gem/module/package
- android - 在非标准构建类型的情况下,androidTest 依赖项的未解析符号
- r - 如何展平非原子函数结果,以便可以将其分配为 dplyr mutate 步骤的一部分?
- dictionary - 以字符串为键和任何值的字典
- python - 什么是线性池化层?
- angular - 我如何从角度组件调用 HTML 标记函数
- javascript - 如何从网站下载嵌入式视频?
- installation - LoadRunner 2020 安装中的致命错误
- python - 获取 IndexError:列表索引超出范围错误