amazon-web-services - 在 RDS 集群中的所有实例上创建 CloudWatch 警报
问题描述
我有一个带有 2 个实例的 RDS Aurora 集群,一个读取器和一个写入器。
DatabaseConnections
我使用维度创建了 CloudWatch 警报DBClusterIdentifier
。
但是警报仅适用于一个实例(作者)。如果阅读器超过阈值,则不会触发警报。
如果任何 RDS 实例超过阈值,如何触发警报。
这是我的代码:
resource "aws_cloudwatch_metric_alarm" "rds-connection-count-alarm" {
alarm_name = "rds-connection-count-alarm"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "1"
metric_name = "DatabaseConnections"
namespace = "AWS/RDS"
period = "60"
statistic = "Maximum"
threshold = "1000" # max 2000 for db.r4.xlarge rds instances
dimensions {
DBClusterIdentifier = "${aws_rds_cluster.my_rds_cluster.id}"
}
alarm_description = "Alerts Slack if the DB connection count exceeds 1000"
alarm_actions = ["${data.aws_sns_topic.notification_topic.arn}"]
ok_actions = ["${data.aws_sns_topic.notification_topic.arn}"]
insufficient_data_actions = []
lifecycle {
create_before_destroy = true
}
}
解决方案
我建议在使用 RDS Aurora 时使用角色来监控写入器和读取器上的连接。这样做有两个好处:
- 您可以单独跟踪和设置作家和读者的警报
- 如果您的实例被替换,您不必更新监视器或警报,因为每个实例都将具有一个或另一个角色。
请注意,如果您有多个读者,则读者角色是平均他们。
推荐阅读
- json - 无法解析 JSON 参数
- python-3.x - 从文本文件中对行中的字符求和?
- javascript - 使用 JavaScript 修改子节点中的输入名称
- javascript - 我正在拨打我的 api 电话,但我无法将其返回给我的动作创建者
- c# - 如何将点数组转换为矩形
- go - Bazel 在处理 protobuf 文件时有一个错误。我怎样才能暂时解决这个问题?
- javascript - 从 json 导入时,vis.js 无法更改边缘颜色
- r - 将许多列乘以和除以每个组的另一列
- android - 通用图像加载器获取图像但输出显示为空白
- ruby-on-rails - 提取变量值在“_”之前的部分