Creare allarmi e dashboard di monitoraggio OCI personalizzati PostgreSQL utilizzando le istanze contenitore
Introduzione
Questa esercitazione fornisce istruzioni dettagliate per distribuire una soluzione di monitoraggio personalizzata per PostgreSQL utilizzando un'applicazione Java basata su Docker su Oracle Cloud Infrastructure (OCI). Dimostreremo come creare avvisi e dashboard personalizzati per gli slot di replica inattivi e il ritardo di replica in OCI utilizzando un contenitore basato su virtual machine (VM). Sebbene l'impostazione corrente si concentri sul monitoraggio del ritardo della replica PostgreSQL e degli slot di replica inattivi, la progettazione è flessibile e può essere facilmente estesa per tenere traccia di ulteriori metriche del database modificando il codice dell'applicazione.
Obiettivi
-
Distribuire un'applicazione Java basata su Docker su una virtual machine OCI per monitorare PostgreSQL.
-
Crea allarmi e dashboard personalizzati in OCI per gli slot di replica inattivi e i ritardi di replica utilizzando la soluzione di monitoraggio distribuita.
Task 1: Download e impostazione del servizio di monitoraggio
-
Scaricare il file
Postgres-monitoring-services.zip
da qui: Postgres-monitoring-services.zip. -
Estrarre e seguire le istruzioni del file
README.md
per creare ed eseguire l'applicazione. -
Le istruzioni di creazione e distribuzione Docker sono incluse nel repository.
Nota: le istruzioni per la creazione e il push dell'immagine Docker sono già disponibili nel file
README.md
del repository progetti.
Task 2: Creazione di un gruppo dinamica
I gruppi dinamici consentono alla VM del container di accedere ai servizi OCI come OCI Monitoring, OCI Vault e OCI Registry senza utilizzare credenziali non modificabili e senza memorizzare le credenziali nell'immagine.
Utilizza le seguenti informazioni:
- Nome: immettere
psql_monitoring_with_container_vm_dg
. -
Regola di corrispondenza:
ALL {resource.type = 'computecontainerinstance', resource.compartment.id = '<your-compartment-id>'}
Nota:
compartment.id
è l'OCID del compartimento in cui verrà creata l'istanza del contenitore.
Task 3: Configurare la rete (VCN e gateway di servizi)
Per garantire una comunicazione trasparente, posiziona la VM container nella stessa subnet privata del sistema di database PostgreSQL. Abilitare l'accesso ai servizi OCI utilizzando un gateway di servizi.
Regole lista di sicurezza:
Assicurarsi che le regole riportate di seguito vengano aggiunte alla lista di sicurezza della subnet privata, se non sono già presenti.
Type | CIDR di origine | Protocollo | Porta | Scopo |
---|---|---|---|---|
In entrata | CIDR-subnet privata | TCP | 5.432 | Accesso a PostgreSQL |
Uscita | 0.0.0.0/0 | Tutti | Tutti | Accedi ai servizi OCI |
Task 4: Utilizzare OCI Vault per lo storage sicuro delle password
Utilizzare OCI Vault per lo storage sicuro delle password per evitare la codifica delle credenziali del database.
-
Creare un Vault e aggiungere un segreto contenente la password PostgreSQL.
-
Registrare l'OCID segreto del vault.
-
Riutilizzare il segreto se esiste già.
Task 5: Definire i criteri di Oracle Cloud Infrastructure Identity and Access Management
Collegare questi criteri IAM OCI.
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>
Task 6: Avvia istanze contenitore
Andare a OCI Console, andare a Servizi per sviluppatori, Artifact container, Istanze container, Crea istanza e immettere le informazioni riportate di seguito.
- VCN/subnet: selezionare la stessa opzione del sistema di database.
- Forma: selezionare 1 OCPU, 4 GB.
- Immagine Docker: selezionare Da OCIR.
-
Variabili di ambiente:
DB_PASSWORD_VAULT_ID=<your-vault-secret-ocid> DB_SYSTEM_ID=<your-db-system-ocid> DB_PE=<your-db-system-private-endpoint-FQDN> DB_PSQL_USER=<your-db-user> METRIC_COMPARTMENT_ID=<your-compartment-id> METRIC_NAMESPACE=postgres_monitor_with_container_vm REPLICATION_LAG_METRIC_NAME=replication_lag_metric INACTIVE_SLOTS_METRIC_NAME=inactive_slot_metric MONITOR_INTERVAL_SEC=60
Nota: l'accesso viene concesso senza credenziali tramite il gruppo dinamico IAM OCI.
Task 7: Controllo dei log in OCI Console
Andare a OCI Console, andare a Servizi per sviluppatori, Artifact container, Istanze container, selezionare l'istanza e fare clic sulla scheda Container per esaminare i log e lo stato di runtime.
Task 8: Visualizza metriche in Explorer metriche
Andare a OCI Console, andare a Observability & Management, Metrics Explorer e immettere le informazioni riportate di seguito.
- Spazio di nomi: immettere
postgres_monitor_with_container_vm
. - Metriche: selezionare
replication_lag_metric
einactive_slot_metric
. - Filtro: immettere
DBSystemId = "<your-db-system-ocid>"
.
Query di esempio:
replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.mean()
Task 9: Impostazione di un argomento e di sottoscrizioni OCI Notifiche
-
Andare a OCI Console, andare a Integrazione applicazione e fare clic su Notifiche.
-
Creare un argomento. Ad esempio,
PostgresCustomMonitoringAlerts
. -
Aggiungere sottoscrizioni (e-mail, webhook e così via).
-
Collegare questo argomento agli allarmi per gli avvisi in tempo reale.
Task 10: configurare gli allarmi di monitoraggio OCI per le metriche chiave
-
Allarme ritardo replica
replication_lag_metric[1m]{DBSystemId = "<your-db-system-ocid>"}.max()
- Trigger: immettere > 1.000.000 (1 MB).
- Ritardo: immettere 5 minuti.
- Severità: selezionare Critica.
-
Allarme slot di replica inattivi
inactive_slot_metric[1h]{DBSystemId = "<your-db-system-ocid>"}.max()
- Trigger: immettere > 1.
- Ritardo: immettere 2 ore.
- Severità: selezionare Avvertenza.
-
Allarme dati mancante
- Metrica: selezionare
replication_lag_metric
. - Trigger: immettere Nessun dato per 10 minuti.
- Severità: selezionare Errore.
- Metrica: selezionare
Task 11: Creare un dashboard personalizzato
-
Andare alla console OCI, andare a Osservabilità e gestione e fare clic su Dashboard.
-
Fare clic su Nuovo dashboard.
-
Aggiungere widget utilizzando Grafico metriche o Query Builder.
-
Immettere le informazioni riportate di seguito.
- Spazio di nomi: immettere
postgres_monitor_with_container_vm
. - Metriche: selezionare
replication_lag_metric
einactive_slot_metric
.
- Spazio di nomi: immettere
-
Personalizzare i tipi di grafico, i filtri e l'intervallo di tempo.
Summary table
Componente | Scopo |
---|---|
Gruppo dinamico | Concede a OCI l'accesso alla VM container |
OCI Vault | Storage sicuro delle credenziali del database |
OCI Registry | Repository di immagini Docker host |
Agente di monitoraggio | Raccoglie le metriche PostgreSQL personalizzate |
Allarmi | Avvisi su ritardo, slot, dati mancanti |
VM contenitore | Esegue lo strumento di monitoraggio basato su Java |
Dashboard | Visualizza le metriche in tempo reale |
Punti salienti dell'architettura serverless e resiliente
-
Architettura serverless:
- Distribuito utilizzando la VM container, non è necessario gestire l'infrastruttura manualmente.
- OCI gestisce il provisioning e il recupero delle VM dagli errori a livello di host
Vantaggio: riduce il sovraccarico operativo e migliora la tolleranza agli errori.
-
Riavvio automatico del contenitore:
- I contenitori vengono impostati con un criterio di riavvio predefinito.
- Se l'applicazione si blocca o esce in modo imprevisto, viene riavviato automaticamente.
Vantaggio: garantisce alta disponibilità e riduce al minimo i tempi di inattività.
-
Allarme basato su metriche:
- Un allarme dedicato è configurato per l'attivazione quando mancano le metriche previste.
Vantaggio: agisce come una soluzione di emergenza per rilevare errori silenziosi e abilitare avvisi anticipati.
Risoluzione dei problemi
-
Problemi di connettività:
- Assicurarsi che la porta
5432
sia aperta nella lista di sicurezza della subnet. - Confermare che il gateway del servizio è collegato per l'accesso privato.
- Assicurarsi che la porta
-
Errori di autorizzazione IAM OCI:
- Verificare che il gruppo dinamico corrisponda al compartimento corretto.
- Assicurarsi che siano presenti i criteri richiesti.
-
Errori di impostazione:
- Convalida le variabili di ambiente.
- Verificare gli OCID dei segreti e delle metriche.
- Utilizzare i log per tracciare gli errori di runtime.
Collegamenti correlati
Conferme
- Autori - Arvind Yadav, Kanaram Bhari (Software Engineer - Database OCI con PostgreSQL)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Create PostgreSQL Custom OCI Monitoring Alarms and Dashboard using Container Instances
G37661-01
Copyright ©2025, Oracle and/or its affiliates.