Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/terraform-trailwatch-modules/terraform-aws-rds
This Terraform module creates CloudWatch Log Metric Filters and associated Alarms for monitoring Amazon RDS instances and clusters based on specified event names.
https://github.com/terraform-trailwatch-modules/terraform-aws-rds
aws aws-rds rds terraform-module terraform-trailwatch trailwatch
Last synced: 15 days ago
JSON representation
This Terraform module creates CloudWatch Log Metric Filters and associated Alarms for monitoring Amazon RDS instances and clusters based on specified event names.
- Host: GitHub
- URL: https://github.com/terraform-trailwatch-modules/terraform-aws-rds
- Owner: terraform-trailwatch-modules
- License: mit
- Created: 2024-10-28T11:57:15.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-30T14:05:54.000Z (2 months ago)
- Last Synced: 2024-10-31T21:08:35.428Z (2 months ago)
- Topics: aws, aws-rds, rds, terraform-module, terraform-trailwatch, trailwatch
- Language: HCL
- Homepage: https://registry.terraform.io/modules/terraform-trailwatch-modules/rds/aws/latest
- Size: 18.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Relational Database Service (RDS)
## About
This Terraform module creates CloudWatch Log Metric Filters and associated Alarms for monitoring Amazon RDS instances and clusters based on specified event names. It helps ensure that critical changes to RDS resources are monitored effectively and alerts are sent to a pre-existing SNS topic.## Features
- Creates CloudWatch Log Metric Filters for specified RDS instances and clusters.
- Creates CloudWatch Alarms that trigger based on metrics from the filters.
- Flexible configuration for events to monitor and alarm settings.## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | ~> 1.0 |
| [aws](#requirement\_aws) | ~> 5.46 |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [cw\_log\_group\_name](#input\_cw\_log\_group\_name) | The name of the CloudWatch log group storing CloudTrail logs. | `string` | n/a | yes |
| [cw\_metric\_filter\_alarm\_actions](#input\_cw\_metric\_filter\_alarm\_actions) | The list of actions to execute when the alarm transitions into an ALARM state from any other state. | `list(string)` | `[]` | no |
| [cw\_metric\_filter\_alarm\_comparison\_operator](#input\_cw\_metric\_filter\_alarm\_comparison\_operator) | The comparison operator for the CloudWatch metric filter alarm. | `string` | `"GreaterThanOrEqualToThreshold"` | no |
| [cw\_metric\_filter\_alarm\_evaluation\_periods](#input\_cw\_metric\_filter\_alarm\_evaluation\_periods) | The number of periods over which data is compared to the specified threshold. | `number` | `1` | no |
| [cw\_metric\_filter\_alarm\_period](#input\_cw\_metric\_filter\_alarm\_period) | The period in seconds over which the specified statistic is applied. | `number` | `300` | no |
| [cw\_metric\_filter\_alarm\_statistic](#input\_cw\_metric\_filter\_alarm\_statistic) | The statistic to apply to the alarm's associated metric. | `string` | `"Sum"` | no |
| [cw\_metric\_filter\_alarm\_threshold](#input\_cw\_metric\_filter\_alarm\_threshold) | The value against which the specified statistic is compared. | `number` | `1` | no |
| [cw\_metric\_filter\_namespace](#input\_cw\_metric\_filter\_namespace) | The namespace for the CloudWatch metric filter. | `string` | `"RDS/Monitoring"` | no |
| [cw\_metric\_filter\_value](#input\_cw\_metric\_filter\_value) | The value to publish to the CloudWatch metric. | `string` | `"1"` | no |
| [rds\_db\_cluster\_events](#input\_rds\_db\_cluster\_events) | List of RDS cluster-related events to monitor. | `list(string)` |[| no |
"CreateDBCluster",
"DeleteDBCluster",
"ModifyDBCluster",
"CreateDBClusterSnapshot",
"DeleteDBClusterSnapshot",
"RestoreDBClusterFromS3",
"FailoverDBCluster",
"AddRoleToDBCluster",
"RemoveRoleFromDBCluster"
]
| [rds\_db\_identifiers](#input\_rds\_db\_identifiers) | The list of RDS database identifiers to monitor. | `list(string)` | n/a | yes |
| [rds\_db\_instance\_events](#input\_rds\_db\_instance\_events) | List of RDS instance-related events to monitor. | `list(string)` |[| no |
"DeleteDBInstance",
"ModifyDBInstance",
"RebootDBInstance",
"CreateDBSnapshot",
"DeleteDBSnapshot",
"RestoreDBInstanceFromDBSnapshot"
]
| [rds\_db\_parameter\_group\_events](#input\_rds\_db\_parameter\_group\_events) | List of RDS parameter group-related events to monitor. | `list(string)` |[| no |
"CreateDBParameterGroup",
"DeleteDBParameterGroup",
"ModifyDBParameterGroup"
]
| [rds\_db\_security\_group\_events](#input\_rds\_db\_security\_group\_events) | List of RDS security group-related events to monitor. | `list(string)` |[| no |
"CreateDBSecurityGroup",
"DeleteDBSecurityGroup",
"ModifyDBSecurityGroup"
]
| [rds\_db\_type](#input\_rds\_db\_type) | The type of the RDS database: 'instance' for RDS instance or 'cluster' for RDS cluster. | `string` | `"instance"` | no |## Simple Example
```hcl
# database type: `instance`
module "terraform_trailwatch_rds" {
source = "terraform-trailwatch-modules/rds/aws"
rds_db_identifiers = ["acme-database-1"]
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}# database type: `cluster`
module "terraform_trailwatch_rds" {
source = "terraform-trailwatch-modules/rds/aws"
rds_db_identifiers = ["acme-database-1"]
rds_db_type = "cluster"
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}
```## Advanced Example
```hcl
# database type: `instance`
module "aws_monitoring_rds" {
source = "terraform-trailwatch-modules/rds/aws"
rds_db_identifiers = ["acme-database-1"]
rds_db_instance_events = ["DeleteDBInstance", "ModifyDBInstance"]
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_namespace = "RDS/Monitoring"
cw_metric_filter_value = "1"
cw_metric_filter_alarm_comparison_operator = "GreaterThanOrEqualToThreshold"
cw_metric_filter_alarm_evaluation_periods = 1
cw_metric_filter_alarm_period = 300
cw_metric_filter_alarm_statistic = "Sum"
cw_metric_filter_alarm_threshold = 1
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}# database type: `cluster`
module "aws_monitoring_rds" {
source = "terraform-trailwatch-modules/rds/aws"
rds_db_identifiers = ["acme-database-1"]
rds_db_type = "cluster"
rds_db_cluster_events = ["CreateDBCluster", "DeleteDBCluster"]
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_namespace = "RDS/Monitoring"
cw_metric_filter_value = "1"
cw_metric_filter_alarm_comparison_operator = "GreaterThanOrEqualToThreshold"
cw_metric_filter_alarm_evaluation_periods = 1
cw_metric_filter_alarm_period = 300
cw_metric_filter_alarm_statistic = "Sum"
cw_metric_filter_alarm_threshold = 1
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}
```## Changelog
For a detailed list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md).## License
This module is licensed under the [MIT License](LICENSE).