RDS Monitoring
Ziele
- Erstellen einer Datenbank mit
- Erweitertem Logging
- Enhanced Monitoring
- Perfomrmance Insights
- Erstellen eines Cloudwatchalarms
Hilfsmittel
- Sollten Sie Probleme haben die Aufgaben zu lösen, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.
- Versuchen Sie die Aufgaben erst einmal ohne die Lösungshilfen zu bearbeiten.
Aufgabe 1 - Erstellen der Parametergruppen
DB Parameter Group
Erstellen Sie eine DB Parameter Group und setzten Sie die folgenden Einstellungen:
general_log = 1
slow_query_log = 1
log_output = FILE
long_query_time = 1
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Tippen Sie RDS in die Suchleiste am oberen Bildschrimrand und wählen Sie den entsprechenden Menüpunkt aus, um auf die RDS Einstellungsseite zu gelangen.
- Klicken Sie im Menü am linken Bildschirmrand auf Parameter groups
- Denken Sie sich einen schönen Namen und eine Beschreibung aus.
- Klicken Sie auf die gerade erstellte Parameter Gruppe.
- Klicken Sie auf Edit parameters.
- Suchen Sie im Suchfeld nach den oben aufgeführten Werten und setzten Sie sie entsprechend.
- Klicken Sie Save changes
Cluster Parameter Group
Erstellen Sie eine Cluster Parameter Group und setzten Sie die folgenden Einstellungen:
server_audit_logging = 1
server_audit_events = CONNECT
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Tippen Sie RDS in die Suchleiste am oberen Bildschrimrand und wählen Sie den entsprechenden Menüpunkt aus um auf die RDS Einstellungsseite zu gelangen.
- Klicken Sie im Menü am linken Bildschirmrand auf Parameter groups
- Bei "Type" wählen Sie DB Cluster Parameter Group.
- Denken Sie sich einen schönen Namen und eine Beschreibung aus.
- Klicken Sie auf die gerade erstellte Parameter Gruppe.
- Klicken Sie auf Edit parameters.
- Suchen Sie im Suchfeld nach den oben aufgeführten Werten und setzten Sie sie entsprechend.
- Klicken Sie Save changes
Datenbank starten
Starten Sie eine neue Aurora Mysql Datenbank mit folgenden zusätzlichen Einstelungen:
- DB cluster parameter group: Die gerade erstellte
- DB parameter group: Die gerade erstellte
- Enhanced Monitoring mit Granularity 10 seconds
- Log exports: alles aktiviert
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Falls Sie nicht im RDS Bereich sein sollten, navigieren Sie über die Suche dort hin.
- Wählen Sie im linken Menü den Eintrag Datenbanken aus.
- Orangener Button Datenbank erstellen anklicken.
-
Im neuen Fenster diese Einstellungen anwenden:
Datenbank Instanz Einstellungen
- Type: Amazon Aurora
- Edition: Amazon Aurora MySQL-Compatible Edition
- Capacity Type: Provisioned
- DB cluster identifier: None-labs-mysql-db
- Master username: Sie können
admin
verwenden oder auch anpassen, notieren Sie sich den Usernamen. - Master password: Vergeben Sie ein Passwort und notieren Sie es sich.
Beachten - WICHTIG!
Das Passwort kann nachträglich nicht mehr geändert werden! Wenn Sie das Passwort vergessen, muss die Instanz neu erstellt werden.
Richtlinien für das Passwort: mindestens 8 Zeichen. Nicht erlaubte Zeichen: / (slash), '(single quote), "(double quote) und @ (at Zeichen)
- Master password confirm: Tragen Sie das Passwort nochmals ein zur Bestätigung.
Multi AZ deployment: Don't create an Aurora Replica auswählen.
- Virtual private cloud (VPC): None-labs-vpc
- Subnet Groups: Wählen Sie die Subnetz Gruppe None-labs-rds-subnet-group aus.
- VPC security groups: Wählen Sie die Security Gruppe None-labs-rds-sec-group aus und entfernen Sie die Gruppe
default.
-
Wenden Sie zusätzlich die oben genannten Einstellungen an.
Beispieldaten anlegen
Benutzen Sie das Script run_load_data.sh
im VSCode, um die Datenbank mit den Beispieldaten zu befüllen.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Öffnen Sie den "File-Explorer" im linken Bereich (unter dem Hauptmenü-Knopf).
- Öffnen Sie die Datei
run_load_data.sh
im Ordnerscripts
. - Bearbeiten Sie die Variables:
USER=**Ihr DB User**
,PW=**Ihr DB Passwort**
,URL=**Url zum DB Endpunkt**
. - Starten Sie ein neues Terminal indem Sie auf den Menü-Knopf (im linken oberen Eck) anklicken und dort Terminal New Terminal auswählen. Am unteren Bildschirmrand ist nun ein Terminal zugänglich.
- Navigieren Sie im Terminal zum
scripts
Pfad mit dem Befehl:cd ~/workspace/scripts
- Führen Sie das Script aus mit dem Befehl:
./run_load_data.sh
Log Einträge betrachten
Machen Sie sich mit den Logs in Cloudwatch log vertraut und versuchen Sie Logeinträge für verschiedene Logs zu triggern.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Falls Sie nicht im CloudWatch Bereich sein sollten, navigieren Sie über die Suche dort hin.
- Wählen Sie im linken Menü den Eintrag Log groups aus.
- Wählen Sie die entsprechende Log Gruppe.
- Einträge im Slow Querry Log können mit einem Select auf die Tabelle
salaries
getriggert werden, z.B.Das funktioniert nur einmal, da die Query dann gecached ist ;)Select * FROM salaries where from_date = "2001-11-27";
- Einträge im Error Log können mit einem Login mit falschem Passwort getriggert werden.
- Einträge im Audit Log können mit belibigem Login getriggert werden.
Log Einträge durchsuchen
Klicken Sie auf Log insights und wählen Sie die Log Gruppe RDSOSMetrics
. Bauen Sie querries um Ihre Logs zu durchsuchen, die folgende Querry kann ein guter Startpunkt sein:
fields @timestamp, @message
| filter cpuUtilization.total > 10
Monitoring einrichten
Erstellen Sie einen Cloudwatchalarm für Ihre Datenbank Instanz mit folgenden Einstellungen:
- Send notifications to: New email or SMS topic
- With these recipient: Ihre E-Mail Adresse
- Metric: Average of DB Connections
- Threshold: >= 10 Count
- Evaluation period: 1 consecutive period(s) of 1 Minute
Sie erhalten anschließen eine E-Mail in der Sie die Subscription zu der SNS Topic bestätigen müssen ansonsten werden Sie die anschließende Benachrichtigung nicht erhalten.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Falls Sie nicht im RDS Bereich sein sollten, navigieren Sie über die Suche dort hin.
- Wählen Sie im linken Menü den Eintrag Databases aus.
- Wählen Sie die Instanz in Ihrem Datenbankcluster aus. Bei Auswahl des Cluster selbst lässt sich keine Cloudwatch Alarm einrichten.
- Klicken Sie auf den Tab Logs & events.
- Klicken Sie Create Alarm.
- Nehmen Sie die oben aufgeführten Einstellungen vor.
- Klicken Sie Create alarm
Cloudwatch Alarm testen
- Passen Sie in der VSCode Console die Variablen in dem Script
run_generate_load.sh
an und führen Sie es anschließend aus. - Beobachten Sie den Cloud Watch Alarm. Nachdem er auf
Alarm
gewechselt hat, sollten Sie eine E-Mail erhalten.