Gestire e monitorare AlloyDB Omni

Seleziona una versione della documentazione:

Questa pagina descrive come gestire i ruoli utente di AlloyDB Omni, monitorare l'attività del server AlloyDB Omni e aggiornare o rimuovere l'installazione di AlloyDB Omni.

Gestisci i ruoli utente

AlloyDB Omni utilizza i seguenti ruoli:

  • AlloyDB Omni include un ruolo di super utente denominato alloydbadmin e un ruolo non di super utente denominato alloydbmetadata.

  • L'utente postgres predefinito ha un ruolo di super utente.

  • Tutti gli altri ruoli utente predefiniti non hanno privilegi. Sono riservati per potenziali utilizzi futuri.

Configura un database AlloyDB Omni

Ti consigliamo di seguire questi passaggi per configurare un database AlloyDB Omni:

  1. Definisci o importa i tuoi database utilizzando il ruolo utente postgres. In una nuova installazione, questo ruolo dispone dei privilegi di super utente.

  2. Crea nuovi ruoli utente con il livello di accesso corretto alle tabelle della tua applicazione, sempre utilizzando il ruolo utente postgres.

  3. Configura l'applicazione per connetterti al database utilizzando questi nuovi ruoli con accesso limitato.

Puoi creare e definire tutti i nuovi ruoli utente di cui hai bisogno. Non modificare o eliminare i ruoli utente forniti con AlloyDB Omni.

Per saperne di più, consulta Gestisci utenti e ruoli di AlloyDB Omni.

Monitora AlloyDB Omni

Il monitoraggio dell'installazione di AlloyDB Omni include il recupero e l'analisi delle metriche di AlloyDB Omni.

AlloyDB Omni in esecuzione su Kubernetes fornisce un insieme di metriche di base disponibili come endpoint Prometheus. Per un elenco delle metriche disponibili, consulta Metriche di AlloyDB Omni.

Inoltre, AlloyDB Omni in esecuzione su Kubernetes espone le metriche delle risorse personalizzate sfruttando kube-state-metrics (KSM). Per attivare le metriche delle risorse personalizzate, consulta Monitora le risorse personalizzate dell'operatore AlloyDB Omni Kubernetes.

Kubernetes

Trova i file di log del cluster di database

I file postgresql.audit e postgresql.log si trovano nel file system del pod del database. postgresql.audit è presente solo se hai attivato pgaudit.

Per accedere a questi file, segui questi passaggi:

  1. Definisci una variabile di ambiente contenente il nome del pod del database.

    export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`

    Sostituisci DB_CLUSTER_NAME con il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando lo hai creato.

  2. Esegui una shell sul pod del database come root.

    kubectl exec ${DB_POD} -it -- /bin/bash
  3. Trova i file di log nella directory /obs/diagnostic/:

    • /obs/diagnostic/postgresql.audit
    • /obs/diagnostic/postgresql.log

Elenca i servizi di monitoraggio

v1.0

Quando crei un cluster di database, AlloyDB Omni crea il seguente servizio di monitoraggio per ogni CR dell'istanza del cluster di database nello stesso spazio dei nomi:

al-INSTANCE_NAME-monitoring-system

Per elencare i servizi di monitoraggio, esegui questo comando.

kubectl get svc -n NAMESPACE | grep monitoring

Sostituisci NAMESPACE con uno spazio dei nomi a cui appartiene il cluster.

La seguente risposta di esempio mostra i servizi al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system e al-4bc0-dbc-monitoring-system. Ogni servizio corrisponde a un'istanza.

al-1060-dbc-monitoring-system   ClusterIP   10.0.15.227   <none>        9187/TCP   7d20h
al-3de6-dbc-monitoring-system   ClusterIP   10.0.5.205    <none>        9187/TCP   7d19h
al-4bc0-dbc-monitoring-system   ClusterIP   10.0.15.92    <none>        9187/TCP   7d19h

Versione < 1.0

Quando crei un cluster di database, AlloyDB Omni crea i seguenti servizi di monitoraggio nello stesso spazio dei nomi del cluster di database:

  • DB_CLUSTER-monitoring-db

  • DB_CLUSTER-monitoring-system

Per elencare i servizi di monitoraggio, esegui questo comando.

kubectl get svc -n NAMESPACE | grep monitoring

Sostituisci NAMESPACE con uno spazio dei nomi a cui appartiene il cluster.

La seguente risposta di esempio mostra al-2953-dbcluster-foo7-monitoring-system e il servizio al-2953-dbcluster-foo7-monitoring-db.

al-2953-dbcluster-foo7-monitoring-db           ClusterIP   10.36.3.243    <none>        9187/TCP   44m
al-2953-dbcluster-foo7-monitoring-system       ClusterIP   10.36.7.72     <none>        9187/TCP   44m

Visualizza le metriche di Prometheus dalla riga di comando

La porta 9187 è denominata metricsalloydbomni per tutti i servizi di monitoraggio.

  1. Configura il port forwarding dall'ambiente locale al servizio di monitoraggio.

    kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomni
    

    Sostituisci quanto segue:

    • MONITORING_SERVICE: il nome del servizio di monitoraggio che vuoi inoltrare, ad esempio al-1060-dbc-monitoring-system.

    • NAMESPACE: lo spazio dei nomi a cui appartiene il cluster.

    • MONITORING_METRICS_PORT: una porta TCP locale disponibile.

    La seguente risposta mostra che i servizi vengono inoltrati.

    Forwarding from 127.0.0.1:9187 -> 9187
    Forwarding from [::1]:9187 -> 9187
    
  2. Mentre il comando precedente è in esecuzione, puoi accedere alle metriche di monitoraggio tramite HTTP sulla porta specificata. Ad esempio, puoi utilizzare curl per visualizzare tutte le metriche come testo normale:

    curl http://localhost:MONITORING_METRICS_PORT/metrics
    

    Puoi anche visualizzare queste metriche di Prometheus nella pagina Insight sul sistema dell'interfaccia utente web di AlloyDB Omni. Quando l'endpoint del servizio di monitoraggio (porta 9187) viene sottoposto a scraping dalla tua istanza Prometheus, l'interfaccia utente web esegue query su Prometheus per visualizzare grafici in tempo reale su CPU, memoria, spazio di archiviazione e I/O del disco. Per saperne di più, consulta Visualizza le metriche di sistema utilizzando System Insights.

Visualizza le metriche utilizzando l'API Prometheus

La chiave etichetta alloydbomni.internal.dbadmin.goog/task-type e la porta metricsalloydbomni sono disponibili per impostazione predefinita per tutti i servizi di monitoraggio in AlloyDB Omni. Puoi utilizzarli insieme a una singola risorsa personalizzata serviceMonitor per selezionare tutti i servizi per tutti gli spazi dei nomi nel cluster di database.

Quando configuri Prometheus per lo scraping della porta metricsalloydbomni utilizzando l'API Prometheus, puoi connettere l'endpoint Prometheus all'interfaccia utente web di AlloyDB Omni per monitorare l'utilizzo delle risorse di host e istanze in Insight di sistema (/system-insights). In Insight di sistema, puoi filtrare le metriche tra le istanze sottoposte a scraping utilizzando il menu Filtra per: Istanze e regolare la finestra di osservazione (1 ora, 6 ore, 1 giorno o 7 giorni) per ispezionare l'utilizzo della CPU, l'utilizzo della memoria, la memoria disponibile, il limite di memoria, l'utilizzo dello spazio di archiviazione e la velocità effettiva di lettura e scrittura di I/O del disco. Per saperne di più, consulta Visualizza le metriche di sistema utilizzando System Insights.

Per saperne di più sull'utilizzo dell'API Prometheus, consulta la documentazione di Prometheus Operator.

Di seguito è riportato un esempio di campo spec della risorsa personalizzata serviceMonitor che include la chiave di etichetta alloydbomni.internal.dbadmin.gdc.goog/task-type e la porta metricsalloydbomni. La risorsa personalizzata serviceMonitor monitora e raccoglie tutti i servizi Kubernetes in tutti gli spazi dei nomi

Per saperne di più sulla definizione completa di ServiceMonitor, consulta la definizione della risorsa personalizzata ServiceMonitor .

v1.0

    spec:
      selector:
        matchLabels:
          alloydbomni.internal.dbadmin.goog/task-type: monitoring
      namespaceSelector:
        any: true
      endpoints:
        - port: metricsalloydbomni

Versione < 1.0

    spec:
      selector:
        matchExpressions:
        - key: alloydbomni.internal.dbadmin.gdc.goog/task-type
          operator: Exists
          values: []
      namespaceSelector:
        any: true
      endpoints:
      - port: metricsalloydbomni

Visualizza le metriche utilizzando Grafana

Per una rappresentazione visiva delle metriche in AlloyDB Omni su Kubernetes, utilizza la dashboard di monitoraggio. La dashboard di monitoraggio si basa su uno stack di osservabilità di base composto da Prometheus e Grafana. Per configurare la dashboard di monitoraggio in modo da raccogliere le metriche da AlloyDB Omni, segui questi passaggi:

  1. Per scaricare la dashboard di Grafana, utilizza il comando wget:

    wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yaml
    
  2. Devi scaricare e installare grafana-operator prima di eseguire il deployment di Grafana in Kubernetes. Per istruzioni dettagliate, consulta Installazione.

  3. Aggiungi l'etichetta monitoring.dashboard/product=alloydb-omni all'istanza Grafana in cui installi la dashboard:

    kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACE
    

    Sostituisci quanto segue:

    • GRAFANA_INSTANCE_NAME: il nome dell'istanza Grafana in cui hai inserito la dashboard.
    • NAMESPACE: lo spazio dei nomi in cui hai eseguito il deployment dell'operatore Grafana.
  4. Per applicare la configurazione della dashboard di Grafana al tuo cluster AlloyDB Omni su Kubernetes, utilizza il seguente comando:

    kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACE
    

    Per informazioni sull'utilizzo dell'operatore Grafana, consulta la documentazione dell'operatore Grafana.

  5. Per configurare Grafana in modo che utilizzi Prometheus come origine dati, consulta Origini dati.

  6. Per verificare che Grafana sia configurato correttamente, esegui una delle seguenti operazioni:

    • Visualizza la raccolta di riquadri Grafana nella dashboard di AlloyDB Omni.
    • Recupera le informazioni sulla dashboard di Grafana in un cluster Kubernetes:

      kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'
      

      Se il comando restituisce True, il deployment di alloydb-omni-dashboard nell'istanza Grafana è stato eseguito correttamente.

Visualizza le metriche di sistema utilizzando System Insights

Puoi monitorare le metriche dell'infrastruttura in tempo reale e storiche per le tue istanze AlloyDB Omni utilizzando Insight di sistema nell'interfaccia utente web di AlloyDB Omni. Insight di sistema esegue query sulle metriche di Prometheus esportate dall'agente di monitoraggio di AlloyDB Omni per visualizzare i grafici di utilizzo delle risorse.

Per visualizzare le metriche di sistema nella UI web, completa i seguenti passaggi:

  1. Connettiti alla UI web e seleziona il tuo cluster.
  2. Nel menu di navigazione, fai clic su Insight di sistema.
  3. (Facoltativo) In un cluster multi-nodo, utilizza l'elenco Filtra per: Istanze per selezionare un endpoint di istanza specifico (ad esempio localhost:9187).
  4. Seleziona un intervallo di tempo (1 ora, 6 ore, 1 giorno o 7 giorni) per regolare il periodo di osservazione in tutti i grafici.
  5. Esamina i grafici di telemetria del sistema:
    • Utilizzo CPU: mostra la percentuale di utilizzo della CPU nel tempo.
    • Utilizzo della memoria: mostra la percentuale di memoria allocata in uso nel tempo.
    • Memoria disponibile: mostra la percentuale di memoria libera disponibile nel tempo.
    • Limite di memoria: mostra la quota di memoria configurata (in GB) per l'istanza.
    • I/O di archiviazione e disco: mostra sei grafici aggiuntivi che monitorano l'utilizzo dello spazio di archiviazione, il limite di spazio di archiviazione, il numero di letture del disco, i byte letti, il numero di scritture del disco e i byte scritti.

Disinstalla AlloyDB Omni

Kubernetes

Elimina il cluster di database

Per eliminare il cluster di database, imposta isDeleted su true nel relativo manifest. Puoi farlo con il seguente comando.

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=merge

Sostituisci DB_CLUSTER_NAME con il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando lo hai creato.

Disinstalla l'operatore AlloyDB Omni

Per disinstallare l'operatore AlloyDB Omni Kubernetes dal tuo cluster Kubernetes, segui questi passaggi:

  1. Elimina tutti i cluster di database:

    for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do
    for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
    kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}'
    done
    done
  2. Attendi che l'operatore AlloyDB Omni Kubernetes elimini tutti i cluster di database. Utilizza il seguente comando per verificare se rimangono risorse del database:

    kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
  3. Elimina le altre risorse create dall'operatore AlloyDB Omni Kubernetes:

    kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespaces
  4. Disinstalla l'operatore AlloyDB Omni Kubernetes:

    helm uninstall alloydbomni-operator --namespace alloydb-omni-system
  5. Esegui la pulizia di secret, descrizioni delle risorse personalizzate e spazi dei nomi relativi all'operatore AlloyDB Omni Kubernetes:

    kubectl delete certificate -n alloydb-omni-system --all
    kubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -n
    kubectl delete crd -l alloydb-omni=true
    kubectl delete ns alloydb-omni-system

Ridimensiona il cluster di database basato su Kubernetes

Per ridimensionare la CPU, la memoria o lo spazio di archiviazione del cluster di database basato su Kubernetes, aggiorna il campo resources dei manifest che definiscono il pod. AlloyDB Omni operator applica immediatamente le nuove specifiche al pod del database.

Per ulteriori informazioni sulla sintassi del manifest dell'operatore AlloyDB Omni, consulta Crea un cluster di database.

Alla modifica delle risorse di un cluster di database in esecuzione si applicano le seguenti limitazioni:

  • Puoi aumentare le dimensioni di un disco solo se il storageClass specificato supporta l'espansione del volume.
  • Non puoi ridurre le dimensioni di un disco.