Gestire i ruoli utente
AlloyDB Omni utilizza lo stesso insieme di ruoli utente PostgreSQL predefiniti inclusi in AlloyDB per PostgreSQL, con le seguenti differenze:
AlloyDB Omni include un ruolo di superuser denominato
alloydbadmin
e un ruolo non superuser denominatoalloydbmetadata
.L'utente
postgres
predefinito ha un ruolo di superuser.Tutti gli altri ruoli utente predefiniti non hanno privilegi. Sono riservati a potenziali utilizzi futuri.
Configura un database AlloyDB Omni
Come per AlloyDB per PostgreSQL, è una best practice seguire questi passaggi quando configuri un database:
Definisci o importa i tuoi database utilizzando il ruolo utente
postgres
. In una nuova installazione, questo ruolo dispone di privilegi di superutente e non richiede password.Crea nuovi ruoli utente con il livello di accesso corretto alle tabelle della tua applicazione, utilizzando di nuovo il ruolo utente
postgres
.Configura l'applicazione per connettersi al database utilizzando questi nuovi ruoli con accesso limitato.
Puoi creare e definire tutti i nuovi ruoli utente che ti servono. Non modificare o eliminare nessuno dei ruoli utente forniti con AlloyDB Omni.
Per maggiori informazioni, vedi Gestire utenti e ruoli di AlloyDB Omni.
Monitora AlloyDB Omni
Il monitoraggio dell'installazione di AlloyDB Omni include la lettura e l'analisi dei file di log 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 metriche da risorse personalizzate che sfruttano kube-state-metrics (KSM). Per abilitare le metriche delle risorse personalizzate, consulta Monitorare le risorse personalizzate dell'operatore AlloyDB Omni Kubernetes.
A un solo server
Per impostazione predefinita, per recuperare i log di AlloyDB Omni, esegui:
Docker
docker logs CONTAINER_NAME
Sostituisci CONTAINER_NAME
con il nome del tuo contenitore AlloyDB Omni.
Per configurare il comportamento di logging di AlloyDB Omni, consulta Personalizza l'installazione di AlloyDB Omni.
Podman
podman logs CONTAINER_NAME
Sostituisci CONTAINER_NAME
con il nome del tuo contenitore AlloyDB Omni.
Per configurare il comportamento di logging di AlloyDB Omni, consulta Personalizza l'installazione di AlloyDB Omni.
Kubernetes
Trovare 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:
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.Esegui una shell sul pod del database come root.
kubectl exec ${DB_POD} -it -- /bin/bash
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 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
Visualizzare le metriche Prometheus dalla riga di comando
La porta 9187
è denominata metricsalloydbomni
per tutti i servizi di monitoraggio.
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 esempioal-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
Mentre viene eseguito il comando precedente, puoi accedere alle metriche di monitoraggio tramite HTTP sulla porta che hai specificato. Ad esempio, puoi utilizzare
curl
per visualizzare tutte le metriche come 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 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 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
Visualizzare 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 costituito da Prometheus e Grafana. Per configurare la dashboard di monitoraggio in modo da raccogliere le metriche da AlloyDB Omni:
Per scaricare la dashboard Grafana, utilizza il comando
wget
:wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yaml
Devi scaricare e installare grafana-operator prima di eseguire il deployment di Grafana in Kubernetes. Per istruzioni dettagliate, vedi Installazione.
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 inserire il dashboard.NAMESPACE
: lo spazio dei nomi in cui hai eseguito il deployment dell'operatore Grafana.
Per applicare la configurazione del dashboard 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.
Per configurare Grafana in modo che utilizzi Prometheus come origine dati, consulta Origini dati.
Per verificare che Grafana sia configurato correttamente, esegui una delle seguenti operazioni:
- Visualizza la raccolta di pannelli Grafana nella dashboard di AlloyDB Omni.
Recupera informazioni sulla dashboard 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
,alloydb-omni-dashboard
viene eseguito il deployment correttamente nell'istanza Grafana.
Esegui l'upgrade di AlloyDB Omni
Per eseguire l'upgrade da AlloyDB Omni 15.5.2 o versioni precedenti alla 15.5.4, segui le istruzioni riportate in Eseguire la migrazione da una versione precedente di AlloyDB Omni alla versione più recente.
Per eseguire l'upgrade dalla versione 15.5.4 e successive:
Riavvia AlloyDB Omni utilizzando una nuova versione dell'immagine.
Assicurati di specificare la directory dei dati in modo che corrisponda allo stesso percorso utilizzato nelle versioni precedenti di AlloyDB Omni.
Disinstalla AlloyDB Omni
A un solo server
Per disinstallare AlloyDB Omni, arresta 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 tuo contenitore AlloyDB Omni.
Podman
podman container stop CONTAINER_NAME
podman container rm CONTAINER_NAME
Sostituisci CONTAINER_NAME
con il nome del tuo contenitore AlloyDB Omni.
Podman
podman container stop CONTAINER_NAME
podman container rm CONTAINER_NAME
Sostituisci CONTAINER_NAME
con il nome del tuo contenitore AlloyDB Omni.
Puoi spostare, archiviare o eliminare una directory di dati esterni a seconda di se e come vuoi conservare i dati dopo aver disinstallato 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 l'hai
creato.
Disinstalla l'operatore AlloyDB Omni
Per disinstallare l'operatore AlloyDB Omni Kubernetes dal tuo cluster Kubernetes, segui questi passaggi:
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
Attendi che l'operatore AlloyDB Omni Kubernetes elimini tutti i cluster di database. Utilizza il seguente comando per verificare se sono rimaste risorse di database:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
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
Disinstalla l'operatore AlloyDB Omni Kubernetes:
helm uninstall alloydbomni-operator --namespace alloydb-omni-system
Pulisci i secret, le descrizioni delle risorse personalizzate e gli spazi dei nomi correlati 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 saperne di più sulla sintassi del manifest dell'operatore AlloyDB Omni, consulta Creare un cluster di database.
Si applicano le seguenti limitazioni 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.