我正在构建一个 ELK 堆栈(第一次)来跟踪 CloudFront 分配的最终用户 REST API 使用情况(在 S3 源之前)。用户将刷新令牌作为其请求的一部分传递,我希望使用此令牌来识别哪些用户正在发出哪个请求。不幸的是,CloudFront 访问日志似乎缺少一些标头信息(尤其是我的用例中的授权/接受)。这给我留下了三个问题:
有没有办法告诉 CloudFront 记录其他项目?看来答案是否定的。
作为一种替代策略,我尝试使用 lambda@edge (在查看器请求中)修改请求对象,以将标头信息移动到查询字符串中(以便它被记录),但 lambda@edge 中的任何操作似乎都没有反映在日志中。(尽管它反映在 Origin Request 函数中)。这应该可能吗?
如果做我想做的事是不可能的,我认为另一种方法是完全放弃 CloudFront 日志,只用每个用户请求触发一个 http 请求来 logstash,但我觉得这很容易超载。
谢谢