如何在CloudFormation中为AWS DocumentDB创建区分主与只读实例的CloudWatch告警
在CloudFormation中为AWS DocumentDB创建主/只读实例的CloudWatch CPU利用率告警
要区分DocumentDB的主实例和只读实例创建CloudWatch告警,核心是利用CloudWatch指标的DBInstanceRole维度——主实例的该维度值为PRIMARY,只读实例为READER。以下是完整的YAML和JSON格式CloudFormation模板示例:
YAML模板示例
AWSTemplateFormatVersion: '2010-09-09' Resources: # 主实例CPU利用率告警 DocDBPrimaryCPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: DocDB-Primary-CPU-Utilization-High AlarmDescription: 当DocumentDB主实例CPU利用率超过80%时触发告警 Namespace: AWS/DocDB MetricName: CPUUtilization Dimensions: - Name: DBInstanceIdentifier Value: !Ref YourDocDBInstanceName # 替换为你的DocumentDB实例ID - Name: DBInstanceRole Value: PRIMARY Statistic: Average Period: 300 # 5分钟采样周期 EvaluationPeriods: 2 Threshold: 80 ComparisonOperator: GreaterThanThreshold AlarmActions: - !Ref YourSNSTopicARN # 替换为你的告警通知SNS Topic ARN TreatMissingData: notBreaching # 只读实例CPU利用率告警(监控集群内所有只读实例) DocDBReaderCPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: DocDB-Reader-CPU-Utilization-High AlarmDescription: 当DocumentDB只读实例CPU利用率超过80%时触发告警 Namespace: AWS/DocDB MetricName: CPUUtilization Dimensions: - Name: DBInstanceIdentifier Value: !Ref YourDocDBInstanceName - Name: DBInstanceRole Value: READER Statistic: Average Period: 300 EvaluationPeriods: 2 Threshold: 80 ComparisonOperator: GreaterThanThreshold AlarmActions: - !Ref YourSNSTopicARN TreatMissingData: notBreaching
关键配置说明
- Dimensions:通过
DBInstanceRole明确指定监控的实例角色,这是区分主/只读实例的核心。如果需要针对单个只读实例告警,只需在Dimensions中添加该只读实例的具体ID。 - Period/EvaluationPeriods:示例设置为每5分钟采样一次,连续2次超过阈值触发告警,可根据业务需求调整采样频率和评估次数。
- AlarmActions:替换为你的SNS Topic ARN用于接收告警通知,也可配置Lambda函数等其他动作。
JSON模板示例(简化版)
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "DocDBPrimaryCPUAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmName": "DocDB-Primary-CPU-Utilization-High", "AlarmDescription": "当DocumentDB主实例CPU利用率超过80%时触发告警", "Namespace": "AWS/DocDB", "MetricName": "CPUUtilization", "Dimensions": [ { "Name": "DBInstanceIdentifier", "Value": "your-docdb-instance-id" }, { "Name": "DBInstanceRole", "Value": "PRIMARY" } ], "Statistic": "Average", "Period": 300, "EvaluationPeriods": 2, "Threshold": 80, "ComparisonOperator": "GreaterThanThreshold", "AlarmActions": [ "your-sns-topic-arn" ], "TreatMissingData": "notBreaching" } }, "DocDBReaderCPUAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmName": "DocDB-Reader-CPU-Utilization-High", "AlarmDescription": "当DocumentDB只读实例CPU利用率超过80%时触发告警", "Namespace": "AWS/DocDB", "MetricName": "CPUUtilization", "Dimensions": [ { "Name": "DBInstanceIdentifier", "Value": "your-docdb-instance-id" }, { "Name": "DBInstanceRole", "Value": "READER" } ], "Statistic": "Average", "Period": 300, "EvaluationPeriods": 2, "Threshold": 80, "ComparisonOperator": "GreaterThanThreshold", "AlarmActions": [ "your-sns-topic-arn" ], "TreatMissingData": "notBreaching" } } } }
使用时请将模板中的占位符(实例ID、SNS Topic ARN)替换为你的实际资源信息。
内容的提问来源于stack exchange,提问作者user2712135
相关产品推荐
相关产品推荐

