Amazon web services aws cloudwatch日志过滤器模式包括匹配模式之前和/或之后的行

Amazon web services aws cloudwatch日志过滤器模式包括匹配模式之前和/或之后的行,amazon-web-services,aws-cli,amazon-cloudwatch,amazon-cloudwatchlogs,Amazon Web Services,Aws Cli,Amazon Cloudwatch,Amazon Cloudwatchlogs,有没有办法在AWS CloudWatch日志中匹配模式之前和/或之后包含N行 假设我有这个查询,希望在每个匹配之前和之后都有3行 aws logs filter-log-events --log-group-name my-group --filter-pattern "mypattern" 目前我唯一的解决办法是删除过滤器模式并使用grep: aws logs filter-log-events --log-group-name my-group | grep -A 3 -B 3 mypat

有没有办法在AWS CloudWatch日志中匹配模式之前和/或之后包含N行

假设我有这个查询,希望在每个匹配之前和之后都有3行

aws logs filter-log-events --log-group-name my-group --filter-pattern "mypattern"
目前我唯一的解决办法是删除过滤器模式并使用grep:

aws logs filter-log-events --log-group-name my-group | grep -A 3 -B 3 mypattern

但是,我只想流式处理我需要的日志事件,并将其作为aws日志事件查询的一部分进行处理。

aws()目前不支持这一点,但有一种跟踪功能的方法,将来可能会支持这一点

同时,在问题中提到的日志流化之后,您将不得不求助于过滤

aws logs filter-log-events --log-group-name my-group | grep -A 3 -B 3 mypattern

我遇到了完全相同的问题,发现通过时间戳搜索在某种程度上解决了我的问题

CloudWatch有“Logs Insights”,这是一个流畅的日志搜索器

按关键字搜索并获取时间戳,然后过滤日志周围的时间戳


-c3
可以
-a3-b3
我认为这还不够,首先,当我这样做的时候,我得到了JSON,所以grep+/-行不起作用。第二,需要有某种方法来搜索“最后一天”之类的东西。目前,aws日志似乎只支持自1970年以来输入en显式毫秒作为--开始时间。这就好像他们尽可能地把这当作人类不可用的东西来做:)为了让它更好地工作,增加了一些提示:--将文本输出为文本,而不是json(这似乎是默认设置)。执行日期+%s若要获取unix当前时间戳,请手动减去一小时(比如3600),然后执行--开始时间