当服务器不在云中时,将日志文件存储在云中

我们正在考虑长期向端迁移。 计划从小规模开始,逐步将基础设施的不重要部分迁移到云中。 迄今为止都很好。

这一迁移的一部分包括来自Web服务器的日志文件以及其他内容。 请记住,服务器仍在云端以外的数据中心。 在每天结束时,应该很容易地拥有一个cron job抓取日志文件,压缩这些日志文件,并将它们推送到Amazon S3,并将其备份到Glacier。 这很容易。

当S3是您存储日志的唯一位置,并且您想要search各种事件的日志时,就会出现问题。 如果您不知道时间间隔,则可能必须从S3下载全部日志才能进行全面search,结果变得非常昂贵 – 将您的数据移入云中非常便宜,从中获得成本非常高昂。

或者我可以设置一个EC2实例模板。 当有人想要做日志search时,启动实例,从S3下载日志,然后grep。 从S3下载文件到EC2很便宜。 但下载可能需要一段时间; 另外,如果你不知道你在找什么,你需要下载很多日志,这意味着在EBS中使用大量的空间。

另一种方法是将日志上传到DynamoDB或其他东西。 价格可能是一个问题。 另一个问题是,日志是完全非结构化的Apache和Squid日志等等 – 所以查询可能需要很长时间。

我们正在谈论500GB /年的压缩日志,存储长达5年。

对我来说,像这样在云中存储日志似乎不是一个好主意。 也许只是使用Glacier作为“磁带备份”,但现在在本地保存日志,在几个硬盘上。

你哪种方式倾斜?

Logstash + ElasticSearch + Kibana。 这是你需要的组合。

听起来就像你正在寻找AWS,所以build立一个适度的EC2集群 – 可能是一个logstash“路由器/代理”框和两个Elasticsearch集群节点。

在ES索引中保持合理数量的“在线”数据,然后将旧索引归档到S3。 ElasticSearch支持开箱即用,并能够(相对无缝地)从S3导出和导入数据。

就如何将日志logging到EC2中,我只是使用从自托pipe服务器到EC2集群的IPsec隧道,并使用任何您想要的协议发送日志。 Logstash对一些input格式有广泛的支持。

在云中运行splunk服务器,在小型实例中保持运行状态,使用EBS卷,甚至在I / O不成为瓶颈的情况下尝试使用S3卷。

我们推出了云日志pipe理服务(slicklog.com),可能会解决您的问题。 当你的日志到达平台上时,

  • 他们是可search的
  • 可以随意多次下载
  • 你可以看到一些统计数据,如Min,Max,Count,Sum,Percentiles等

经过一段时间(最less1个月),通过UIconfiguration,日志归档($ 0.001 / GB,不压缩),日志归档

  • 不可search。
  • 可以随意多次下载,无需额外费用。

根据您的要求,如果您可以忍受归档日志文件不可search的事实,则可能会将其视为解决scheme。

希望这可以帮助。