我已为 AWS S3 存储桶启用了访问日志记录。现在,日志文件已发送到我选择的目的地。每个文件的名称格式为 YYYY-MM-DD-hh-mm-ss-guidguidguid,时间代表日志文件中的最后一条条目。每个文件包含一行或多行。每行代表一次访问。
我收到了很多小日志文件。大多数文件只包含一行,有些文件甚至包含五行。我每分钟访问存储桶多达几十次,因此每分钟我收到 3-20 个新日志文件。
我在网上看到有人提到这些日志通常每小时发送一次。我是否忽略了某个控制发送频率或触发发送的阈值的选项?
答案1
简短回答:不。
长答案(来自使用服务器访问日志记录请求
尽力而为的服务器日志传送
服务器访问日志记录会尽最大努力进行传送。大多数针对正确配置日志记录的存储桶的请求都会产生已传送的日志记录。大多数日志记录会在记录后的几小时内传送,但传送频率可能会更高。
服务器日志的完整性和及时性无法保证。特定请求的日志记录可能在请求实际处理很久之后才传送,或者可能根本没有传送。您甚至可能会看到重复的日志记录。服务器日志的目的是让您了解存储桶的流量性质。虽然日志记录很少丢失或重复,但请注意,服务器日志并非旨在完整记录所有请求。
这基本上意味着您无法控制 S3 何时或如何删除日志(除了路径前缀以及它们是否按事件时间或传递时间命名)。
及时处理它们的最佳机会可能是使用 S3 Lambda 触发器“随时”清理它们,或者使用触发器将它们重塑为 JSON,然后将它们转储到 Kinesis Firehose 中并让它处理批处理和拼花,以便使用 Athena 或您拥有的其他方式更快、更便宜地处理它们。