grofers.rds-alarms

Build-Status

RDS Alarme

Erstellt Warn- und kritische Alarme für RDS-Instanzen auf Amazon CloudWatch. Weitere Details finden Sie im Blogbeitrag.

:boom: Bewährt bei Grofers

Anforderungen

  • Ein Thema in AWS SNS
  • boto
  • awscli
  • Eine IAM-Richtlinie mit den folgenden Berechtigungen:
{
    "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

Um zu installieren, führen Sie einfach aus:

$ ansible-galaxy install grofers.rds-alarms

Rollenvariablen

  • rds_alarms_region - AWS-Region (erforderlich)
  • rds_alarms_common_action_list - Liste von ARN der Themen in AWS SNS
  • rds_alarms_period - Zeit (in Sekunden) zwischen den Metrikbewertungen
  • rds_alarms_evaluation_periods - Die Anzahl der Bewertungen, bevor die endgültige Berechnung erfolgt
  • rds_alarms_common_action_list - Immer diese Alarmaktionen einfügen
  • rds_alarms_warning_threshold - Warnschwelle (standardmäßig - 75%)
  • rds_alarms_critical_threshold - Kritische Schwelle (standardmäßig - 90%)
  • rds_alarms_warning_cpu_credits_threshold - Schwelle für CPU-Guthaben (standardmäßig - 30)
  • rds_alarms_critical_cpu_credits_threshold - Kritische Schwelle für CPU-Guthaben (standardmäßig - 15)
  • rds_alarms_db_instances - Dict im folgenden Format:
rds_alarms_db_instances:
  <rds-instance-identifier>:
    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 # Optional
    warning_threshold: 75 # Optional
    credit_warning_threshold: 30 # Optional
    credit_critical_threshold: 15 # Optional
    replica_lag_threshold: 1800 # Nur für Replikate erforderlich. Einheiten Sekunden

Konventionen

Das Format des Namens der in Amazon CloudWatch erstellten Alarme lautet: rds-<instance_name>-<metric_name>-<alert_type>.

Zum Beispiel: Der warning-Alarm für CPU für eine Instanz mit dem Kennzeichen my-rds-instance wird als rds-my-rds-instance-cpu-warning erstellt.

Beispiel-Playbook

Dieses Playbook erstellt Alarme für my-rds-instance-identifier mit den Standard-Schwellenwerten. Die Alarme für my-replica-rds-instance-identifier werden mit einer Warnschwelle von 80 % und einer kritischen Schwelle mit dem Standardwert (90 %) erstellt. Wenn die Instanz eine Replik ist, wird auch ein Alarm für die Replikationsverzögerung erstellt. Für jede t2-Instanz werden auch Alarme für verbleibende CPU-Guthaben erstellt.

- 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: # Dies verwendet die Standardwerte
        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

Einschränkungen

Sie müssen mehrere Playbooks für verschiedene Regionen erstellen.

Lizenz

MIT-Lizenz

Über das Projekt

Creates Cloudwatch Alarms for RDS instances

Installieren
ansible-galaxy install grofers.rds-alarms
Lizenz
mit
Downloads
506
Besitzer