从CloudWatch日志导出任务中获取单个且排序的导出日志数据是否可行?

0

【以下的问题经过翻译处理】 目前我使用 CreateExportTask API 来备份我的日志数据。

问题在于,在S3上导出的数据(针对单个日志组)会被分为几个文件,并且每个文件的时间戳都是无序的。

我想知道是否有办法通过导出任务获取一个单一有序的文件,或者我需要编写一个脚本来合并和排序导出的数据。

编辑)

导出的文件按照以下方式进行分割:

  • 000000.gz
  • 000001.gz
  • 000002.gz

所有文件都是无序的(前5行的时间戳):

  1. 2021-12-03T11:13:34.909Z
  2. 2021-12-03T11:13:57.499Z
  3. 2021-12-03T11:14:34.909Z
  4. 2021-12-22T15:28:14.909Z // 突然跳转
  5. 2021-12-22T15:31:14.909Z
1 回答
0

【以下的回答经过翻译处理】 你好,感谢您联系我们!

目前,使用 CreateExportTask API 将日志从 CloudWatch 导出到 S3,无序的日志文件是预期行为。

因此,需要手动使用脚本将文件排序和合并,或使用标准的 Linux 工具时可以使用下面的命令:

例如 1:

sort -k1 "000000 (1)" > 000000_sorted.txt

例如 2:

find . -exec zcat {} + | sed -r 's/^[0-9]+/\x0&/' | sort -z

将“.”替换为从 S3 导出下载的 .gz 文件名,您还可以将其与另一个 stdout 命令管道连接到另一个文件,以便您可以保存排序输出。

可以确认,有一个开放的功能请求,允许在使用 CreateExportTask 时产生有序的结果。虽然无法明确此功能何时发布,但您可以关注我们的 最新消息 和 博客 页面以获取任何新功能公告!

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则