我正在寻找一种将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命令并本地处理每一行是不可行的。有什么已知的方法可以做我想做的事吗?
谢谢
答案 0 :(得分:1)
时间戳。 CloudWatch中存在的所有日志事件都有时间戳。
您可以创建Kinesis Firehose的订阅过滤器,并在Kinesis上使用lambda函数可以设置日志事件(删除时间戳记),然后将日志存储在S3中。
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html