45

我刚刚在我的 ec2 实例上配置了 Cloudwatch 日志,到目前为止我很喜欢它。我还为某些关键字设置了警报,例如“错误”。虽然电子邮件警报似乎工作正常,但我想知道是否有办法微调警报电子邮件以使其更简洁和信息丰富。具体来说,我正在寻找

  1. 删除警报电子邮件中的所有样板文本。

  2. 包括有关触发警报的错误/异常的一些信息。这可以像包含生成警报的日志语句一样简单。

现在,警报电子邮件看起来像

您收到此电子邮件是因为您在美国东部 - 弗吉尼亚北部地区的 Amazon CloudWatch 警报“App-Error-Alarm”已进入 ALARM 状态,因为“阈值已超过:1 个数据点 (1.0) 大于或等于阈值(1.0)。” 在“2017 年 2 月 7 日星期二 16:39:43 UTC”。

在 AWS 管理控制台中查看此警报: https ://console.aws.amazon.com/cloudwatch/home?region=us-east-1#s=Alarms&alarm=App-Error-Alarm

警报详细信息:- 名称:App-Error-Alarm - 描述:app.log 中的错误 - 状态更改:INSUFFICIENT_DATA -> ALARM - 状态更改原因:超过阈值:1 个数据点 (1.0) 大于或等于阈值 ( 1.0)。- 时间戳:2017 年 2 月 7 日星期二 16:39:43 UTC - AWS 账户:<>

阈值: - 当指标为 GreaterThanOrEqualToThreshold 1.0 持续 300 秒时,警报处于 ALARM 状态。

监控指标: - MetricNamespace:LogMetrics - MetricName:错误 - 维度: - 周期:300 秒 - 统计数据:总和 - 单位:未指定

状态更改操作:- 正常:- 警报:[arn:aws:sns:us-east-1:<>:support] - INSUFFICIENT_DATA:

我想要类似的东西

警报:应用程序错误警报

关键字:“错误”

原因:错误 2017-02-07 07:31:47,375 [SimpleAsyncTaskExecutor-5] com.app.server.rest.Watcher:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

它简短、甜美,瞬间告诉我它是否需要我立即关注。这可以在不按照这里建议的编写代码的情况下完成吗?

4

2 回答 2

27

你有这个问题是因为你配置了一个警报并且是针对聚合数据的,而不是针对特定日志记录的。您将其配置为某些指标(带有 ERROR 关键字的日志记录数)。

您可以改用日志订阅并将与过滤器匹配的所有日志记录流式传输到自定义 Lambda 函数。您可以使用它将通知发送到电子邮件或 Slack。

要配置日志流,请转到 AWS 控制台中的 Lambda,并从名为"cloudwatch-logs-process-data"的蓝图创建一个新函数。它具有基本结构,易于根据您的需要进行定制。

在此处输入图像描述

于 2018-10-20T01:05:19.633 回答
5

您可以使用AWS 实验室提供的Cloudwatch Logs Customize alarms Package 自定义 Cloudwatch 警报。

当您收到警报时,您需要足够的信息来决定是否需要立即关注。您还希望根据操作需要自定义警报文本。CloudWatch Logs 自定义警报是一个 Lambda 函数,可帮助在警报期间从 CloudWatch Logs 读取日志并通过 SES 发送自定义电子邮件。

这些包提供使用 Lambda SNS 端点,然后可以根据您的操作要求自定义警报通知。

于 2017-12-19T18:24:02.723 回答