以原始格式导出Cloudwatch日志

时间:2019-07-02 14:38:28

标签: amazon-cloudwatch amazon-cloudwatchlogs

我正在寻找一种将CW日志以其原始格式导出到s3的方法。我使用控制台从日志组中导出了一天的日志,并且似乎在每行上都添加了时间戳,这破坏了原始的JSON格式。我一直想将其作为测试转换脚本的json文件导入到胶水中。导入到cloudwatch时,使用的原始数据被格式化为普通的json字符串,并正常处理看起来像这样的数据:

{ "a": 123, "b": "456", "c": 789 }

导出并解压缩数据后,它看起来像

2019-06-28T00:00:00.099Z { "a": 123, "b": "456", "c": 789 }

由于该行不再是标准格式,因此会中断将其作为json字符串读取。

此运行的数据集相当大(100GB +),将来可能会变得更大,因此我认为运行CLI命令并本地处理每一行是不可行的。有什么已知的方法可以做我想做的事吗?

谢谢

1 个答案:

答案 0 :(得分:1)

当您将日志推送到CloudWatch时,会自动添加

时间戳。 CloudWatch中存在的所有日志事件都有时间戳。

您可以创建Kinesis Firehose的订阅过滤器,并在Kinesis上使用lambda函数可以设置日志事件(删除时间戳记),然后将日志存储在S3中。

https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html