如何接收有关与 CloudWatch 筛选模式相匹配的 Amazon RDS for SQL Server 错误和代理日志事件的 SNS 通知?

2 分钟阅读
0

我有一个运行 SQL Server 的 Amazon Relational Database Service (Amazon RDS) 数据库实例。我想创建 Amazon CloudWatch 警报和 Amazon Simple Notification Service (Amazon SNS) 主题,这样我就能收到有关特定事件的通知。例如,与 CloudWatch 筛选模式相匹配的 SQL Server 错误和代理日志事件。

简短描述

首先,将 SQL Server 日志发布到 Amazon CloudWatch Logs。然后,为与您创建的筛选模式相匹配的 SQL Server 数据库日志事件创建 CloudWatch 警报和 SNS 通知。

将 Amazon RDS for SQL Server 日志数据发布到 CloudWatch 后,您可以创建指标筛选器来搜索和筛选日志。指标筛选器定义了发送到 Amazon CloudWatch Logs 时在日志数据中搜索的术语和模式。然后,CloudWatch Logs 使用指标筛选器将日志数据转换为数字 CloudWatch 指标,您可以为其设置警报。

当您查看这些指标或设置警报时,可以使用任何类型的 CloudWatch 统计数据,例如百分位数统计数据。有关详细信息,请参阅使用筛选器从日志事件创建指标

解决方法

您可以创建筛选模式,例如“用户登录失败”,以识别失败的登录尝试。或者,您可以为“完成 I/O 请求所需时间超过 15 秒”创建筛选器,以确定 I/O 瓶颈或磁盘瓶颈。

以下示例使用筛选器来搜索和统计包含“用户登录失败”一词的事件,以跟踪失败的登录尝试。

**注意:**默认情况下,Amazon RDS 数据库日志不会发布到 CloudWatch Logs。首先,请按照步骤将 SQL Server 日志发布到 Amazon CloudWatch Logs

  1. 打开 Amazon RDS 控制台,然后从导航窗格中选择 Databases(数据库)。
  2. 选择要为其配置 CloudWatch 指标的数据库实例的名称。
  3. Configuration(配置)选项卡中,选择 CloudWatch Logs 下的 Error(错误)。这将在 CloudWatch 控制台中打开 Logs(日志)窗格。如果您没有看到 Published Logs(已发布的日志)部分,请务必将 SQL Server 日志发布到 CloudWatch Logs
  4. CloudWatch console(CloudWatch 控制台)导航窗格中,选择 Log groups(日志组)。
  5. 选择 RDS 数据库实例的错误日志,然后选择 Create Metric Filter(创建指标筛选器)。
  6. 对于 Filter Pattern(筛选模式),输入一个模式,例如“用户登录失败”。
    **注意:**筛选模式中的所有条目都区分大小写。
  7. 在同一页面上,您可以测试过滤模式。在 Select Log Data to Test(选择要测试的日志数据)部分下,选择要测试过滤器的日志组,然后选择 Test Pattern(测试模式)。
  8. Results(结果)部分中,您可以看到有多少结果与日志文件中的筛选模式相匹配。您也可以选择 Show test results(显示测试结果)以查看更多详细信息。
  9. 选择 Assign Metric(分配指标)。
  10. 输入 Filter name(筛选器名称)和 Metric name(指标名称)。
  11. 选择 Show advanced metric settings(显示高级指标设置),并确认 Metric Value(指标值)设置为 1。此值指定每个包含“用户登录失败”的日志事件的计数以 1 递增。
  12. 对于 Default Value(默认值),输入 0
  13. 选择 Create Filter(创建筛选器)。随即将显示 Create Alarm(创建警报)按钮。选择 Create Alarm(创建警报)。
  14. Period(周期)下拉列表中,选择评估周期。默认周期为 5 分钟。
  15. Conditions(条件)部分中,选择以下选项:
    Threshold type(阈值类型) - Static(静态)。
    Whenever test is(每当测试) - Greater > threshold(大于阈值时)。
    Than(比较) - 输入 10。
  16. 展开 Additional configuration(其他配置)部分。对于 Datapoints to alarm(要警报的数据点),请输入触发警报时必须处于 ALARM 状态的评估周期(数据点)数。
  17. Missing data treatment(缺失数据处理)中,选择 Treat missing data as missing(将缺失数据视为缺失)。
  18. 选择 Next(下一步)。
  19. Notification(通知)部分的 Select an SNS topic(选择 SNS 主题)下,选择现有的 SNS 主题,或创建新主题以接收通知。
  20. 输入您要接收通知的电子邮件端点。
  21. 选择 Next(下一步)。
  22. 输入 Alarm name(警报名称)和 Alarm description(警报描述),然后选择 Next(下一步)。
  23. Preview and create(预览和创建)页面上,查看 Metric(指标)图表和 Conditions(条件)。
  24. 选择 Create Alarm(创建警报)。

完成这些示例步骤后,警报状态在最初的几分钟内为 Insufficient data(数据不足)。警报有足够的数据后,状态为 OK。如果您在 5 分钟内收到 10 次以上的登录失败,则 CloudWatch 警报会向指定的电子邮件地址发送 SNS 通知。

相关信息

Amazon RDS 中的监控指标概览