Gestire e monitorare AlloyDB Omni

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.

Gestire i ruoli utente

AlloyDB Omni utilizza lo stesso insieme di ruoli utente PostgreSQL predefiniti inclusi in AlloyDB, con le seguenti differenze:

  • AlloyDB Omni include un ruolo superutente denominato alloydbadmin e un ruolo non superutente denominato alloydbmetadata.

  • L'utente postgres predefinito ha il ruolo super user.

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

Come per AlloyDB, è buona norma seguire questi passaggi durante la configurazione di un database:

  1. Definisci o importa i database utilizzando il ruolo utente postgres. In una nuova installazione, questo ruolo ha privilegi di superutente e non richiede alcuna password.

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

  3. Configura l'applicazione in modo che si connetta 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 Gestire i ruoli degli utenti AlloyDB.

Monitora AlloyDB Omni

Il monitoraggio dell'installazione di AlloyDB Omni consiste nel leggere e analizzare i file di log.

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

Single-server

Per impostazione predefinita, per recuperare i log di AlloyDB Omni, esegui:

Docker

  docker logs CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Per configurare il comportamento di registrazione di AlloyDB Omni, consulta Personalizzare l'installazione di AlloyDB Omni.

Podman

  podman logs CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Per configurare il comportamento di registrazione di AlloyDB Omni, consulta Personalizzare l'installazione di AlloyDB Omni.

Podman

  podman logs CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Per configurare il comportamento di registrazione di AlloyDB Omni, consulta Personalizzare l'installazione di AlloyDB Omni.

Kubernetes

Trovare i file di log del cluster di database

Puoi trovare i file postgresql.audit e postgresql.log nel file system del pod del database. Per accedere a questi file:

  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 tuo cluster di database. Si tratta dello stesso nome del cluster di database dichiarato quando lo hai creato.

  2. Esegui un shell sul pod del database come utente 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

Elenco dei servizi di monitoraggio

v1.0

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

al-INSTANCE_NAME-monitoring-system

Per elencare i servizi di monitoraggio, esegui il seguente comando.

kubectl get svc -n NAMESPACE | grep monitoring

Sostituisci NAMESPACE con uno spazio dei nomi a cui appartiene il tuo 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 il seguente comando.

kubectl get svc -n NAMESPACE | grep monitoring

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

L'esempio di risposta seguente mostra il servizio al-2953-dbcluster-foo7-monitoring-system e 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

Visualizzare le metriche Prometheus dalla riga di comando

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

  1. Configura l'inoltro delle porte dal tuo 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 disponibile localmente.

    La seguente risposta mostra che i servizi vengono inoltrati.

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

    curl http://localhost:MONITORING_METRICS_PORT/metrics
    

Visualizzare le metriche utilizzando l'API Prometheus

La chiave dell'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.

Per ulteriori informazioni 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 dell'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 ulteriori informazioni 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

Eseguire l'upgrade di AlloyDB Omni

Per eseguire l'upgrade da AlloyDB Omni 15.5.2 o versioni precedenti a 15.5.4, segui le istruzioni riportate in Eseguire la migrazione dalla versione precedente di AlloyDB Omni alla versione più recente.

Per eseguire l'upgrade da 15.5.4 e versioni successive:

  1. Riavvia AlloyDB Omni utilizzando una nuova versione dell'immagine.

  2. Assicurati di specificare la directory dei dati in modo che corrisponda allo stesso percorso utilizzato nelle versioni precedenti di AlloyDB Omni.

Disinstalla AlloyDB Omni

Single-server

Per disinstallare AlloyDB Omni, interrompi ed elimina il contenitore AlloyDB Omni utilizzando il seguente comando:

Docker

 docker container stop CONTAINER_NAME
   docker container rm CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Podman

 podman container stop CONTAINER_NAME
   podman container rm CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Podman

 podman container stop CONTAINER_NAME
   podman container rm CONTAINER_NAME

Sostituisci CONTAINER_NAME con il nome del contenitore AlloyDB Omni.

Puoi spostare, archiviare o eliminare una directory di dati esterna a seconda che tu voglia conservare i dati e come dopo la disinstallazione di AlloyDB Omni.

Kubernetes

Eliminare il cluster di database

Per eliminare il cluster di database, imposta isDeleted su true nel relativo file 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 tuo cluster di database. Si tratta dello stesso nome del cluster di database 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 Kubernetes AlloyDB Omni elimini tutti i cluster di database. Utilizza il seguente comando per verificare se sono presenti risorse di 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. Ripulisci i secret, le descrizioni delle risorse personalizzate e gli 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 relativo pod. L'operatore AlloyDB Omni applica immediatamente le nuove specifiche al pod del database.

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

Le seguenti limitazioni si applicano alla modifica delle risorse di un cluster di database in esecuzione:

  • 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.