2013-05-02 72 views
8

我最近在Amazon S3中托管过,并且需要日志文件来计算对象中“获取”,“放入”,“列表”操作的统计信息。Amazon S3中的日志延迟

我注意到日志文件的组织很奇怪。我不知道什么时候会出现日志(并非立即,至少在操作20分钟后)以及一个日志文件中将包含多少行日志。

之后,我需要下载这些日志文件并进行分析。但我无法弄清楚我多久会这样做。

有人可以帮忙吗?谢谢。

回答

13

你所描述的(日志文件可用延迟和不可预知的顺序)正是declared by AWS预期的行为。这是分布式系统的本质,AWS S3用于提供S3服务,每次从不同的服务器提供相同的请求 - 我已经看到5个不同的IP地址供发布。

所以唯一的解决方法是:接受延迟,看看你经历的延迟,并增加一些额外的时间,并学习与这个总延迟生活(我会期望像30至60分钟,但统计数据可以告诉更多)。

如果您需要订购日志记录,您可以自己排序,或者搜索某些日志处理解决方案 - 我已经看到一些应用程序正是为此目的而提供的。

如果您确实需要以非常短的延迟获取日志文件,则必须自己创建日志,这意味着您必须编写并运行一些前端,从而可以访问S3和同时根据需要继续记录。

我运行这样一个解决方案,用户得到我的前端的用户名和密码以及url。当他们发送请求时,我评估他们是否提供了适当的凭证,并且他们是否被允许查看给定的资源,如果是,我为该资源创建几分钟的有效临时URL并将请求重定向到该请求。

但是这样一个前端花钱(您必须在某处运行您的前端)并且不够健壮,然后直接访问AWS S3。

祝你好运,露露。

+0

非常感谢!我将尝试下载并分析这些日志以获取统计信息。祝你有个美好的一天。 – Lulu 2013-10-31 09:13:01

+0

这是记录在任何地方,记录被延迟? :) – Jigar 2014-12-02 06:59:30

+1

@Jigar查看“尽力服务器日志传递”(http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html)。引用: 服务器访问日志记录以尽力而为的方式提供。对于正确配置用于日志记录的存储桶的大多数请求将导致提供的日志记录,并且大多数日志记录将在它们被记录的几个小时内递送。 – 2014-12-02 12:52:00