使用访问日志跟踪对象存储桶请求 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用访问日志跟踪对象存储桶请求

访问日志记录为向 Amazon Lightsail 对象存储服务中的存储桶发出的请求提供了详细记录。这些信息可能包括请求类型、请求中指定的资源以及处理请求的时间和日期。对于许多应用程序而言,访问日志很有用。例如,访问日志信息可能在安全和访问权限审核方面很有用。此外,它还可以帮助您了解您的客户群。

内容

启用日志传输需要哪些操作?

启用日志传输之前,请考虑以下事项。有关详细信息,请参阅启用存储桶访问日志记录

  1. 确定日志的目标存储桶。您希望 Lightsail 在此存储桶中将访问日志保存为对象。源存储桶和目标存储桶必须位于同一个亚马逊云科技区域,并且由同一个账户拥有。

    您可以让日志传输至您拥有的且与源存储桶位于同一区域中的任何存储桶,包括源存储桶本身。不过,为了更方便地管理日志,我们建议您将访问日志保存在不同的桶中。

    当源桶和目标桶是同一桶时,将为写入该桶的日志创建额外的日志。这样做可能并不理想,因为它会导致您的存储空间使用量小幅增加。此外,有关日志的额外日志可能会导致更难以找到您所查找的日志。如果您选择将访问日志保存在源存储桶中,我们建议您为日志对象键指定前缀,以便对象名称以通用字符串开头,且日志对象更易于识别。当多个桶记录到同一目标桶时,键前缀也可用于区分源桶。

  2. (可选)确定日志对象键的前缀。通过该前缀可更方便地查找日志对象。例如,如果您指定前缀值logs/,则 Lightsail 创建的每个日志对象都以其键中的logs/前缀开头。需要尾部斜杠 / 来表示前缀的末尾。以下是一个采用 logs/ 前缀的日志对象键示例:

    logs/2021-11-31-21-32-16-E568B2907131C0C0

日志对象密钥格式

Lightsail 对上传到目标存储桶中的日志对象使用以下对象密钥格式:

TargetPrefix/YYYY-mm-DD-HH-MM-SS-UniqueString

在键中,YYYYmmDDHHMMSS 分别为日志文件传输时间中表示年、月、日、小时、分钟和秒的数字。这些日期和时间采用协调世界时 (UTC)。

在特定时间传输的日志文件可包含在该时间前的任何时刻编写的记录。无法知道是否已传输特定时间间隔内的所有日志记录。

键的 UniqueString 部分用于防止覆盖文件。它没有意义,日志处理软件应忽略它。

如何传输日志?

Lightsail 会定期收集访问日志记录,将记录整合到日志文件中,然后将日志文件作为日志对象上传到目标存储桶。如果您对传输至相同目标存储桶的多个源存储桶启用了日志记录,则此目标存储桶中将保留所有这些源存储桶的访问日志。但是,每个日志对象只会报告特定源存储桶的访问日志记录。

尽量访问日志传输

访问日志记录会以最大努力进行传输。针对已正确配置了日志记录的存储桶的大多数请求会导致传输一条日志记录。大多数日志记录将在记录后的几小时内传输,但可以更频繁地传输这些记录。

因此,不能保证访问日志记录的完整性和即时性。特殊请求的日志记录可能会在实际处理了请求之后进行传输,也可能根本不会传输。访问日志的用途在于向您提供有关存储桶流量性质方面的信息。丢失日志记录的情况十分少见,但是访问日志记录不旨在完整记录所有请求。

存储桶日志记录状态更改将逐渐生效

桶日志记录状态的更改需要一定时间才能实际影响日志文件的传输。例如,如果您为某个桶启用了日志记录,那么将记录在以下时间内发送的请求,而不会记录其他请求。如果您将日志记录的目标桶从桶 A 更改为桶 B,则在接下来的一个小时里仍可能有一些日志传输到桶 A,但其他日志则会传输到新的目标桶 B。无论如何,新的设置将最终生效,并且您无需执行任何操作。