【问题标题】:How to send alert based on log message on CloudWatch如何根据 CloudWatch 上的日志消息发送警报
【发布时间】:2021-07-19 19:12:03
【问题描述】:

我有一个 lambda 在给定操作失败时发送到 STDERR,例如:

async function handler(event, context) {
  const success = do()
  if (success) {
    return { statusCode: 200 }
  }
  console.error('Failed :(')
  return { statusCode: 400 }
}

这是非常简化的,但你明白了。自然,此消息将出现在 CloudWatch 上。我想知道是否可以(以及如何)设置 CloudWatch 警报,以便在我的日志中显示此消息时向我发送电子邮件。

我已阅读有关 CloudWatch 警报的文档,但那里非常混乱且很难找到任何内容。

【问题讨论】:

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


    【解决方案1】:

    这基本上是一个三(四)步过程。

    1. 您需要从您的日志中创建一个Metric Filter。这将允许您在日志中出现“错误”(或您想要的任何其他条件)时创建一个指标。在这种情况下,度量标准的名称通常类似于“错误”,但有一个完全属于您的命名空间。在那个地方,您可以输入“/my-organization/my-service”之类的内容或任何对您有意义的内容。
    2. 创建一个Metric Alarm。您可以在此警报中指定触发警报的条件。例如,如果在任何 2 分钟内出现 1 个错误。此警报将指向您在上一步中创建的新指标。
    3. 将警报发送到 SNS 主题。
    4. 使用您的电子邮件订阅 SNS 主题。

    【讨论】:

    • 是否可以将记录的线路与报警信息一起发送?
    • 为此,您需要触发 Lambda 函数(或其他代码)并让它根据时间获取日志。真的没有别的我能想到的了。我知道这是很多团队使用的解决方案。
    【解决方案2】:

    使用Azure Monitor,您可以选择使用查询创建日志数据警报(我想这就是您的意思)。 Azure Monitor 警报具有三种类型:metric, log, and activity。但是,我相信 AWS Cloudwatch 仅适用于指标数据。因此,您需要先创建一个指标过滤器,然后再创建警报。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2020-02-27
      相关资源
      最近更新 更多