附加到S3(或任何其他AWS服务)中的日志文件

时间:2013-06-30 17:58:12

标签: logging amazon-web-services amazon-ec2 amazon-s3

我需要在AWS S3(或任何其他可以提供帮助的AWS服务)中创建日志文件。 AFAIU无法在S3中的现有日志文件中附加一行。这意味着每次新消息到来时我都需要检索并重新发送整个日志,或者我需要为每条消息创建一个新对象。检索数据时,后一种选择很复杂。

我有很多日志消息,重要的是不要丢失它们,因此不能选择在服务器内存中缓冲它们并偶尔发送给S3。

哪种AWS服务是我的最佳选择(也就节省成本而言)。

5 个答案:

答案 0 :(得分:19)

您要找的是EBS(Elastic Block Store)。

您可以将EBS驱动器连接到任何服务器,然后开始记录。如果您的服务器死机,EBS磁盘仍然存在,您可以稍后查看数据。

更好的是,只需创建一个中央系统日志服务器(带有EBS驱动器),并让所有(无状态)应用服务器在那里发送日志。

当您的EBS驱动器填满时,将日/周/等存档到S3日志中。这使您可以在S3中存储相当大的文件(如果需要,甚至可以进行压缩)。

答案 1 :(得分:6)

AWS SimpleDB可以满足您的需求:

http://aws.amazon.com/simpledb/usecases_logging/

  

由于Amazon SimpleDB允许您完全卸载工作   需要运行生产数据库,许多开发人员发现它   理想的低触摸数据存储,用于记录有关条件的信息   或事件,状态更新,重复活动,工作流程,   或设备和应用程序状态。 Amazon SimpleDB可以帮助您   经济有效地“设置并忘记”这些数据日志并将其用于   多种用途,例如:

     

监控或跟踪计量业务分析审计趋势   存档或法规遵从性应用示例包括:

     

集中存储服务器日志以减少它们在每个日志上消耗的空间   运行服务器记录运营指标或正在进行的结果   用于以后分析的性能测试审计访问条目或   应用程序或联网设备的配置更改捕获   和监测环境条件(温度,压力水平,   湿度等)在不同的位置和编程警报   特定条件记录和跟踪地理定位信息   关于工作流中的活动的对象或进程状态   Amazon SimpleDB的属性使其成为具有吸引力的数据存储   数据日志:

     

具有高可用性的中央 - 如果您的数据日志是先前的   被困在多个设备/对象,应用程序或   过程孤岛,你将享受到能够访问你的好处   数据集中在云中的一个位置。更重要的是,Amazon SimpleDB   自动和地理冗余地复制您的数据以确保高   可用性。这意味着与集中式内部部署不同   解决方案,您不会在亚马逊上创建单点故障   SimpleDB,您的数据将在您需要时存在。全部   数据可以通过一个解决方案和Web服务请求存储   然后由任何设备访问。零管理 - 您存储数据   具有简单Web服务请求和Amazon Web Services的项目   照顾其余的。设置它并忘记它的服务意义的本质   你没有花时间在数据库管理上存储和存储   维护数据日志。

     

经济高效 - Amazon SimpleDB收取便宜的价格存储   并查询您的数据日志。因为你付钱的只是为了你   您消耗的资源,您不需要自己进行容量规划   或担心数据库负载。该服务只是响应请求   音量来来去去,只为实际收费   消耗的资源。要了解有关Amazon Si的更多信息

答案 2 :(得分:3)

S3可以满足您的需求。 S3不需要有完整的文件来开始存储数据。您可以使用分段上传一次存储块(5mb块)。完成后,比如说一天运行,您可以发送最后一个块并关闭分段上传。并在第二天开始记录。

S3允许最多10,000个零件。因此,通过选择5MiB的零件尺寸,您将能够上传最高50GiB的动态文件。对于大多数用例来说应该足够了。

启动S3分段上传。     将数据收集到缓冲区,直到该缓冲区达到S3的较低块大小限制(5MB)。在构建缓冲区时生成MD5校验和。     将该缓冲区上传为Part,存储ETag。     达到数据的EOF后,上传最后一个块(可能小于5MiB)。     完成分段上传。

这是一种更好的解决方案,因为它不会花费您和EC2实例或EBS存储成本。

答案 3 :(得分:1)

AWS目前没有一个很好的解决方案用于日志记录,但市场上还有一些其他云服务,用于收集和组织日志,包括papertrailapp.comloggly.com

答案 4 :(得分:0)

最简单的方法是登录磁盘,然后按照适合您的间隔旋转和发送日志。

如果您是spot实例或实例支持的实例,这可能会更复杂。