【问题标题】:Get log events from all streams从所有流中获取日志事件
【发布时间】:2016-12-10 06:09:06
【问题描述】:

我正在使用 AWS Java 开发工具包。

有什么方法可以在不指定日志流名称的情况下从日志组获取日志事件。

我的用例是我想获取 VPC Flow Logs,因为 Log Streams 是以动态方式创建的,所以我很难管理与 VPC Flow 日志、Log Group 关联的 Log Streams。

我想要一些东西,我将只指定日志组名称并从该日志组获取所有日志事件。

谢谢。

【问题讨论】:

  • 您能否发布一些示例代码以登录 AWS 并阅读日志事件?

标签: java amazon-web-services aws-sdk amazon-cloudwatchlogs


【解决方案1】:

FilterLogEvents 将适用于此用例。只要请求中未指定以下值,您就可以使用 FilterLogEvents 列出指定日志组中的所有日志事件:

  • 过滤器模式(withFilterPattern)
  • 一个时间范围(withStartTime,withEndTime)
  • 一个或多个日志流 (withLogStreamNames)

这些值用于过滤日志集,因此如果您不想过滤任何日志,请不要指定它们。

如果您打算检索该组中的所有日志,您可能需要使用分页。在您收到的第一个响应中,使用getNextToken() 在您的下一个请求中设置“NextToken”,使用withNextToken()。为每个后续请求执行此操作,直到完成。

签名:

public FilterLogEventsResult filterLogEvents(FilterLogEventsRequest filterLogEventsRequest)

资源:

【讨论】:

  • 根据此解决方案,将从第一个事件中检索数据。如果我想从特定日期开始跨日志组中的所有流检索数据怎么办?我可以在这里使用时间范围参数吗?
  • 没错。您可以根据需要指定过滤模式、日期范围或日志流名称的任何排列以进行过滤。
  • 虽然这可行,但似乎不可能对事件进行排序以首先获取最新事件:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多