如何将cloudfront实时日志流式传输到cloudwatch



我需要在cloudwatch中监控CloudFront实时日志。有什么方法可以将CloudFront实时日志流式传输到cloudwatch吗?

我知道如何将CloudFront标准(访问(日志流式传输到cloudwatch(但它不会流式传输实时日志,并且实时日志时间和日志流式处理时间之间会有很大的延迟。所以我不喜欢它(,以及如何通过kinesis firehouse将实时日志流式发送到AWS OpenSearch。

但在我们的项目中,我们将所有服务日志流式传输到cloudwatch。因此,如果有任何方式将CloudFront日志流式传输到cloudwatch,那就更好了。有没有可能按照我的要求做?

除非有任何未经宣布的产品将CloudFront流式传输到CloudWatch(与您的AWS客户经理交谈(,否则您需要编写一个Lambda来完成此操作。

配置CloudFront写入Kinesis,然后将Lambda函数附加到该Kinesis流。

事情会变得棘手的是,你可能有多个Lambdas同时运行,从Kinesis流中的不同碎片读取。如果尝试写入同一日志流,则需要在调用PutLogEvents之前检索最新的序列令牌,并为(1(冲突和(2(写入日志流的配额不足做好准备。

相反,我建议对处理程序Lambda的第一次调用创建一个新的日志流,随后对该Lambda的调用使用上一个请求中的序列令牌写入该流。这可能会导致大量的日志流,实时读取可能很有挑战性(尽管CloudWatch Logs Insights在这方面有所帮助(。

最新更新