【问题标题】:Use cloudwatch logs to filter logs sent to Lambda on AWS使用 cloudwatch 日志过滤发送到 AWS 上的 Lambda 的日志
【发布时间】:2017-05-06 17:42:46
【问题描述】:

我的管道是:

cloudwatchlogs > lambda > Elastic Search.

问题是这些日志太冗长(我对此无能为力),并且需要过滤其中的 70%,因此它们不会无用地填充我的弹性集群。

我以为我可以在 cloudwatch 日志组上应用 metrix 过滤日志,但这并没有过滤任何东西,意味着它会将它们从 cloudwatch 中删除,只是绘制一些关于它的统计数据......,因此那些不需要的日志仍然出现。

当您创建订阅过滤器时,我发现的只是这个小地方:,但它非常原始,我需要至少 30-40 个不同的过滤器模式,而不仅仅是一个

所以我的问题是:

我唯一不被不需要的日志打扰的方法是在我的 lambda 函数中手动过滤它们(正则表达式等)吗?一定有更简单的方法吧?

谢谢

【问题讨论】:

  • 如果您有 30-40 种不同的模式要过滤,那么您的请求就不是很简单,所以我同意您的观点,在这种情况下 Lambda 会为您提供最大的灵活性。
  • 听起来您需要一个自定义程序来处理过滤。我会使用 python 和 boto 来扫描和过滤日志,然后在 lambda 之外手动将结果发送到 ES。 boto3.readthedocs.io/en/latest/reference/services/…

标签: amazon-web-services aws-lambda amazon-cloudwatchlogs


【解决方案1】:

我最终要做的是让日志到达我的 ElasticCluster 而不进行任何过滤,然后使用 kibana 预过滤我不需要的内容,并使用 cronjob 定期删除弹性搜索中的所有日志。

到目前为止一切顺利,除此之外,当您在 kibana 上创建过滤器时,它还为您提供了自行执行请求所需的 json。

示例:

curl -X POST ES/INDEX/_delete_by_query
{
  "query": {
    "match": {
      "sourceIPAddress": {
        "query": "ec2.amazonaws.com",
        "type": "phrase"
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 2020-10-23
    • 2020-01-25
    • 1970-01-01
    • 2020-05-13
    • 2016-11-27
    • 1970-01-01
    • 2017-09-03
    • 2020-06-25
    相关资源
    最近更新 更多