grofers.rds-alarms

État de construction

Alarmes RDS

Crée des alarmes d'avertissement et critiques pour les instances RDS sur Amazon CloudWatch. Pour plus de détails, consultez le article de blog.

:boom: Testé en conditions réelles chez Grofers

Exigences

  • Un sujet dans AWS SNS
  • boto
  • awscli
  • Une stratégie IAM avec les permissions suivantes :
{
    "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": [
                "*"
            ]
        }
    ]
}

Installation

Pour installer, il suffit d'exécuter

$ ansible-galaxy install grofers.rds-alarms

Variables de rôle

  • rds_alarms_region - Région AWS (Requis)
  • rds_alarms_common_action_list - Liste des ARN des sujets dans AWS SNS
  • rds_alarms_period - Temps (en secondes) entre les évaluations de métriques
  • rds_alarms_evaluation_periods - Nombre de fois où la métrique est évaluée avant le calcul final
  • rds_alarms_common_action_list - Comprend toujours ces actions d'alarme
  • rds_alarms_warning_threshold - Seuil pour l’avertissement (par défaut - 75%)
  • rds_alarms_critical_threshold - Seuil pour l’avertissement (par défaut - 90%)
  • rds_alarms_warning_cpu_credits_threshold - Seuil pour les crédits CPU (par défaut - 30)
  • rds_alarms_critical_cpu_credits_threshold - Seuil pour les crédits CPU (par défaut - 15)
  • rds_alarms_db_instances - Dictionnaire avec le format suivant :
rds_alarms_db_instances:
  <identifiant-instance-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 # Optionnel
    warning_threshold: 75 # Optionnel
    credit_warning_threshold: 30 # Optionnel
    credit_critical_threshold: 15 # Optionnel
    replica_lag_threshold: 1800 # Requis seulement pour les réplicas. Unités en secondes

Conventions

Le format du nom des alarmes créées dans Amazon CloudWatch est : rds-<nom_instance>-<nom_métrique>-<type_alerte>.

Par exemple, l'alerte warning pour CPU pour une instance avec l'identifiant my-rds-instance sera créée sous le nom rds-my-rds-instance-cpu-warning.

Exemple de Playbook

Ce playbook créera des alarmes pour my-rds-instance-identifier avec les seuils par défaut. Pour les alarmes créées pour my-replica-rds-instance-identifier, le seuil d'avertissement sera de 80 % et le seuil critique sera la valeur par défaut (90 %). Si l'instance est une réplica, une alarme sera également créée pour le décalage de replica. Pour chaque instance t2, des alarmes sont également créées pour les crédits CPU restants.

- 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: # ceci utilisera les valeurs par défaut
        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

Limitations

Vous devez créer plusieurs playbooks pour des régions différentes.

Licence

Licence MIT

À propos du projet

Creates Cloudwatch Alarms for RDS instances

Installer
ansible-galaxy install grofers.rds-alarms
Licence
mit
Téléchargements
506
Propriétaire