Benutzerdefinierte PostgreSQL-OCI-Monitoringalarme und -Dashboards mit Containerinstanzen erstellen

Einführung

Dieses Tutorial enthält Schritt-für-Schritt-Anweisungen zum Bereitstellen einer benutzerdefinierten Monitoringlösung für PostgreSQL mit einer Docker-basierten Java-Anwendung auf Oracle Cloud Infrastructure (OCI). Wir zeigen, wie Sie benutzerdefinierte Alerts und Dashboards für inaktive Replikations-Slots und Replikationsverzögerungen in OCI mit einem VM-basierten Container erstellen. Während sich das aktuelle Setup auf die Überwachung der PostgreSQL-Replikationsverzögerung und inaktiver Replikationsslots konzentriert, ist das Design flexibel und kann einfach erweitert werden, um zusätzliche Datenbankmetriken zu verfolgen, indem der Anwendungscode geändert wird.

Ziele

Aufgabe 1: Monitoring-Service herunterladen und einrichten

  1. Laden Sie die Datei Postgres-monitoring-services.zip hier herunter: Postgres-monitoring-services.zip.

  2. Dekomprimieren Sie die Datei README.md, und befolgen Sie die Anweisungen zum Erstellen und Ausführen der Anwendung.

  3. Docker-Build- und -Deployment-Anweisungen sind im Repository enthalten.

    Hinweis: Anweisungen zum Erstellen und Übertragen des Docker-Images sind bereits im README.md des Projekt-Repositorys verfügbar.

Aufgabe 2: Dynamische Gruppe erstellen

Mit dynamischen Gruppen kann Ihre Container-VM auf OCI-Services wie OCI Monitoring, OCI Vault und OCI Registry zugreifen, ohne fest codierte Zugangsdaten zu verwenden und ohne Zugangsdaten in Ihrem Image zu speichern.

Verwenden Sie die folgenden Informationen:

Hinweis: compartment.id ist die Compartment-OCID, in der die Containerinstanz erstellt wird.

Aufgabe 3: Netzwerk (VCN und Servicegateway) konfigurieren

Um eine nahtlose Kommunikation sicherzustellen, platzieren Sie Ihre Container-VM in demselben privaten Subnetz wie Ihr PostgreSQL-Datenbanksystem. Aktivieren Sie den Zugriff auf OCI-Services über ein Servicegateway.

Sicherheitslistenregeln:

Stellen Sie sicher, dass die folgenden Regeln zur Sicherheitsliste des privaten Subnetzes hinzugefügt werden, sofern sie noch nicht vorhanden sind.

Typ Quell-CIDR Protokoll Port Zweck
Ingress private-Subnetz-CIDR TCP 5.432 PostgreSQL Zugriff
Egress 0.0.0.0/0 Alle Alle Auf OCI-Services zugreifen

Aufgabe 4: OCI Vault für sicheren Kennwortspeicher verwenden

Verwenden Sie OCI Vault zur sicheren Kennwortspeicherung, um Hardcoding-Datenbankzugangsdaten zu vermeiden.

  1. Erstellen Sie einen Vault, und fügen Sie ein Secret mit dem Kennwort PostgreSQL hinzu.

  2. Notieren Sie sich die Vault-Secret-OCID.

  3. Verwenden Sie das Secret erneut, wenn es bereits vorhanden ist.

Aufgabe 5: Oracle Cloud Infrastructure Identity and Access Management-Policys definieren

Anhängen dieser OCI IAM-Policys.

Allow dynamic-group psql_monitoring_with_container_vm_dg to read vaults in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read secret-bundles in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to use metrics in compartment <your-compartment-id>
Allow dynamic-group psql_monitoring_with_container_vm_dg to read repos in compartment <your-tenancy-id>

Aufgabe 6: Containerinstanzen starten

Navigieren Sie zur OCI-Konsole, navigieren Sie zu Entwicklerservices, Containerartefakt, Containerinstanzen und Instanz erstellen, und geben Sie die folgenden Informationen ein:

Hinweis: Der Zugriff wird ohne Zugangsdaten über die dynamische OCI IAM-Gruppe erteilt.

image

Aufgabe 7: Logs in der OCI-Konsole prüfen

Navigieren Sie zur OCI-Konsole, navigieren Sie zu Entwicklerservices, Containerartefakt und Containerinstanzen, wählen Sie Ihre Instanz aus, und klicken Sie auf die Registerkarte Container, um Logs und Laufzeitstatus zu prüfen.

Aufgabe 8: Metriken im Metrik-Explorer anzeigen

Navigieren Sie zur OCI-Konsole, navigieren Sie zu Observability and Management, Metrik-Explorer, und geben Sie die folgenden Informationen ein:

Beispielabfrage:

replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()

Aufgabe 9: OCI Notifications-Thema und -Abonnements einrichten

  1. Navigieren Sie zur OCI-Konsole, navigieren Sie zu Anwendungsintegration, und klicken Sie auf Benachrichtigungen.

  2. Erstellen Sie ein Thema. Beispiel: PostgresCustomMonitoringAlerts.

  3. Fügen Sie Abonnements hinzu (E-Mail, Webhook usw.).

  4. Verknüpfen Sie dieses Thema mit Ihren Alarmen für Echtzeit-Alerts.

Aufgabe 10: OCI-Monitoringalarme für Schlüsselmetriken konfigurieren

image

image

Aufgabe 11: Benutzerdefiniertes Dashboard erstellen

  1. Navigieren Sie zur OCI-Konsole, navigieren Sie zu Observability and Management, und klicken Sie auf Dashboards.

  2. Klicken Sie auf Neues Dashboard.

  3. Fügen Sie Widgets mit Metrikdiagramm oder Query Builder hinzu.

  4. Geben Sie folgende Informationen ein.

    • Namespace: Geben Sie postgres_monitor_with_container_vm ein.
    • Metriken: Wählen Sie replication_lag_metric und inactive_slot_metric aus.
  5. Diagrammtypen, Filter und Zeitraum anpassen.

image

Summentabelle

Komponente Zweck
Dynamische Gruppe Erteilt OCI-Zugriff auf Container-VM
OCI Vault Sichere Speicherung von Datenbankzugangsdaten
OCI Registry Host-Docker-Image-Repository
Monitoring-Agent Erfasst benutzerdefinierte PostgreSQL-Metriken
Alarm Alerts bei Verzögerung, Einschubfächern, fehlende Daten
Container-VM Führt das Java-basierte Überwachungstool aus
Dashboard Visualisiert Metriken in Echtzeit

Serverlose und robuste Architektur – Highlights

Fehlerbehebung und Probleme

Bestätigungen

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.