rds-alarms
RDS Алармы
Создает предупреждающие и критические алармы для экземпляров RDS на Amazon CloudWatch. Для получения дополнительной информации, ознакомьтесь с блогом.
:boom: Протестировано в Grofers
Требования
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt19471460522000",
"Effect": "Allow",
"Action": [
"cloudwatch:DeleteAlarms",
"cloudwatch:DescribeAlarms",
"cloudwatch:PutMetricAlarm"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1947940274000",
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances"
],
"Resource": [
"*"
]
}
]
}
Установка
Чтобы установить, просто выполните
$ ansible-galaxy install grofers.rds-alarms
Переменные роли
rds_alarms_region
- Регион AWS (Обязательно)rds_alarms_common_action_list
- Список ARN тем в AWS SNSrds_alarms_period
- Время (в секундах) между оценками метрикrds_alarms_evaluation_periods
- Количество раз, за которые метрика оценивается перед окончательным расчетомrds_alarms_common_action_list
- Всегда включайте действия для этих алармовrds_alarms_warning_threshold
- Порог для предупреждения (по умолчанию - 75%)rds_alarms_critical_threshold
- Порог для критического состояния (по умолчанию - 90%)rds_alarms_warning_cpu_credits_threshold
- Порог для кредитов CPU (по умолчанию - 30)rds_alarms_critical_cpu_credits_threshold
- Порог для кредитов CPU (по умолчанию - 15)rds_alarms_db_instances
- Словарь с следующим форматом:
rds_alarms_db_instances:
<идентификатор-exemplя-rds>:
warning_db_connections_threshold: 100
critical_db_connections_threshold: 200
warning_burst_balance_threshold: 100
critical_burst_balance_threshold: 200
alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
critical_threshold: 90 # Необязательно
warning_threshold: 75 # Необязательно
credit_warning_threshold: 30 # Необязательно
credit_critical_threshold: 15 # Необязательно
replica_lag_threshold: 1800 # Обязательно только для реплик. Единицы — секунды
Конвенции
Формат имени алармов, создаваемых в Amazon CloudWatch выглядит так:
rds-<имя_экземпляра>-<имя_метрики>-<тип_уведомления>
.
Например, предупреждающий аларм для CPU
для экземпляра с идентификатором
my-rds-instance
будет создан как rds-my-rds-instance-cpu-warning
.
Пример Playbook
Этот playbook создаст алармы для my-rds-instance-identifier
с
порогами по умолчанию. А для алармов, созданных для
my-replica-rds-instance-identifier
, будет установлен предупреждающий порог 80%, а критический порог останется по умолчанию (90%). Если экземпляр является репликой, будет также создан аларм для задержки реплики. Для каждого экземпляра t2 также создаются алармы для оставшихся кредитов CPU.
- hosts: localhost
connection: local
vars:
rds_alarms_common_action_list:
- "arn:aws:sns:us-east-1:9783248248:ALARMS"
rds_alarms_period: 60
rds_alarms_evaluation_periods: 2
rds_alarms_region: us-east-1
rds_alarms_warning_threshold: 70
rds_alarms_critical_threshold: 90
rds_alarms_warning_cpu_credits_threshold: 60
rds_alarms_critical_cpu_credits_threshold: 30
rds_alarms_db_instances:
my-rds-instance-identifier: # будет использоваться по умолчанию
warning_db_connections_threshold: 100
critical_db_connections_threshold: 200
alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
my-replica-rds-instance-identifier:
warning_threshold: 80
warning_db_connections_threshold: 100
critical_db_connections_threshold: 200
alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
credit_warning_threshold: 20
credit_critical_threshold: 10
replica_lag_threshold: 1800
roles:
- rds-alarms
Ограничения
Вам нужно создавать несколько playbook для разных регионов.
Лицензия
ansible-galaxy install grofers/ansible-role-rds-alarms