rds-alarms

Статус сборки

RDS Алармы

Создает предупреждающие и критические алармы для экземпляров RDS на Amazon CloudWatch. Для получения дополнительной информации, ознакомьтесь с блогом.

:boom: Протестировано в Grofers

Требования

  • Тема в AWS SNS
  • boto
  • awscli
  • Политика IAM со следующими разрешениями:
{
    "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 SNS
  • rds_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 для разных регионов.

Лицензия

MIT License

О проекте

Creates Cloudwatch Alarms for RDS instances

Установить
ansible-galaxy install grofers/ansible-role-rds-alarms
Лицензия
mit
Загрузки
492
Владелец