Nutzerrollen verwalten
AlloyDB Omni verwendet die folgenden Rollen:
AlloyDB Omni enthält eine Superuser-Rolle mit dem Namen
alloydbadminund eine Nicht-Superuser-Rolle mit dem Namenalloydbmetadata.Der
postgres-Standardnutzer hat eine Superuser-Rolle.Alle anderen vordefinierten Nutzerrollen haben keine Berechtigungen. Sie sind für eine potenzielle zukünftige Verwendung reserviert.
AlloyDB Omni-Datenbank einrichten
Wir empfehlen, beim Einrichten einer AlloyDB Omni-Datenbank die folgenden Schritte auszuführen:
Definieren oder importieren Sie Ihre Datenbanken mit der Nutzerrolle
postgres. Bei einer Neuinstallation hat diese Rolle Superuser-Berechtigungen.Erstellen Sie neue Nutzerrollen mit der richtigen Zugriffsebene für die Tabellen Ihrer Anwendung. Verwenden Sie dazu wieder die Nutzerrolle
postgres.Konfigurieren Sie Ihre Anwendung so, dass sie mit diesen neuen Rollen mit eingeschränktem Zugriff eine Verbindung zur Datenbank herstellt.
Sie können beliebig viele neue Nutzerrollen erstellen und definieren. Ändern oder löschen Sie keine der Nutzerrollen, die in AlloyDB Omni enthalten sind.
Weitere Informationen finden Sie unter AlloyDB Omni-Nutzer und -Rollen verwalten.
AlloyDB Omni überwachen
Zur Überwachung Ihrer AlloyDB Omni-Installation gehört es, AlloyDB Omni-Messwerte abzurufen und zu analysieren.
AlloyDB Omni, das auf Kubernetes ausgeführt wird, bietet eine Reihe von grundlegenden Messwerten, die als Prometheus-Endpunkte verfügbar sind. Eine Liste der verfügbaren Messwerte finden Sie unter AlloyDB Omni-Messwerte.
Außerdem stellt AlloyDB Omni, das auf Kubernetes ausgeführt wird, Messwerte aus benutzerdefinierten Ressourcen mithilfe von kube-state-metrics (KSM) bereit. Informationen zum Aktivieren von Messwerten für benutzerdefinierte Ressourcen finden Sie unter Benutzerdefinierte Ressourcen des AlloyDB Omni Kubernetes-Operators überwachen.
Kubernetes
Logdateien des Datenbankclusters suchen
Die Dateien postgresql.audit und postgresql.log befinden sich im Dateisystem des Datenbank-Pods. postgresql.audit ist nur vorhanden, wenn Sie pgaudit aktiviert haben.
So greifen Sie auf diese Dateien zu:
Definieren Sie eine Umgebungsvariable, die den Namen des Datenbank-Pods enthält.
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}'`Ersetzen Sie
DB_CLUSTER_NAMEdurch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.Führen Sie eine Shell im Datenbank-Pod als Root aus.
kubectl exec ${DB_POD} -it -- /bin/bashFinden Sie die Logdateien im Verzeichnis
/obs/diagnostic/:/obs/diagnostic/postgresql.audit/obs/diagnostic/postgresql.log
Monitoring-Dienste auflisten
v1.0
Wenn Sie einen Datenbankcluster erstellen, erstellt AlloyDB Omni den folgenden Überwachungsdienst für jede Instanz-CR des Datenbankclusters im selben Namespace:
al-INSTANCE_NAME-monitoring-system
Führen Sie den folgenden Befehl aus, um die Monitoring-Dienste aufzulisten.
kubectl get svc -n NAMESPACE | grep monitoring
Ersetzen Sie NAMESPACE durch einen Namespace, zu dem Ihr Cluster gehört.
Die folgende Beispielantwort zeigt die Dienste al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system und al-4bc0-dbc-monitoring-system. Jeder Dienst entspricht einer Instanz.
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
Version < 1.0
Wenn Sie einen Datenbankcluster erstellen, erstellt AlloyDB Omni die folgenden Monitoring-Dienste im selben Namespace wie der Datenbankcluster:
DB_CLUSTER-monitoring-dbDB_CLUSTER-monitoring-system
Führen Sie den folgenden Befehl aus, um die Monitoring-Dienste aufzulisten.
kubectl get svc -n NAMESPACE | grep monitoring
Ersetzen Sie NAMESPACE durch einen Namespace, zu dem Ihr Cluster gehört.
Die folgende Beispielantwort zeigt den al-2953-dbcluster-foo7-monitoring-system- und den al-2953-dbcluster-foo7-monitoring-db-Dienst.
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
Prometheus-Messwerte über die Befehlszeile aufrufen
Der Port 9187 wird für alle Monitoring-Dienste als metricsalloydbomni bezeichnet.
Richten Sie die Portweiterleitung von Ihrer lokalen Umgebung zum Monitoring-Dienst ein.
kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomniErsetzen Sie Folgendes:
MONITORING_SERVICE: der Name des Monitoring-Dienstes, den Sie weiterleiten möchten, z. B.al-1060-dbc-monitoring-systemNAMESPACE: der Namespace, zu dem Ihr Cluster gehörtMONITORING_METRICS_PORT: ein lokal verfügbarer TCP-Port
Die folgende Antwort zeigt, dass die Dienste weitergeleitet werden.
Forwarding from 127.0.0.1:9187 -> 9187 Forwarding from [::1]:9187 -> 9187Während der vorherige Befehl ausgeführt wird, können Sie über HTTP auf dem angegebenen Port auf Monitoring-Messwerte zugreifen. Mit
curlkönnen Sie beispielsweise alle Messwerte als Nur-Text anzeigen lassen:curl http://localhost:MONITORING_METRICS_PORT/metricsSie können diese Prometheus-Messwerte auch auf der Seite System Insights der AlloyDB Omni-Web-Benutzeroberfläche visualisieren. Wenn der Endpunkt des Monitoring-Dienstes (Port
9187) von Ihrer Prometheus-Instanz gescrapt wird, fragt die Web-UI Prometheus ab, um Echtzeitdiagramme für CPU, Arbeitsspeicher, Speicher und Laufwerk-E/A anzuzeigen. Weitere Informationen finden Sie unter Systemmesswerte mit System Insights aufrufen.
Messwerte mit der Prometheus API ansehen
Der Labelschlüssel alloydbomni.internal.dbadmin.goog/task-type und der Port metricsalloydbomni sind standardmäßig für alle Monitoring-Dienste in AlloyDB Omni verfügbar. Sie können sie zusammen mit einer einzelnen benutzerdefinierten serviceMonitor-Ressource verwenden, um alle Dienste für alle Namespaces in Ihrem Datenbankcluster auszuwählen.
Wenn Sie Prometheus so konfigurieren, dass der Port metricsalloydbomni über die Prometheus API abgefragt wird, können Sie Ihren Prometheus-Endpunkt mit der AlloyDB Omni-Web-Benutzeroberfläche verbinden, um die Host- und Instanzressourcenauslastung in System Insights (/system-insights) zu überwachen. In System Insights können Sie Messwerte über abgefragte Instanzen hinweg mit dem Menü Filtern nach: Instanzen filtern und das Beobachtungsfenster (1 Stunde, 6 Stunden, 1 Tag oder 7 Tage) anpassen, um die CPU-Auslastung, die Arbeitsspeichernutzung, den verfügbaren Arbeitsspeicher, das Arbeitsspeicherlimit, die Speichernutzung und den Lese- und Schreibdurchsatz von Laufwerk-E/A zu prüfen. Weitere Informationen finden Sie unter Systemmesswerte mit System Insights ansehen.
Weitere Informationen zur Verwendung der Prometheus API finden Sie in der Prometheus Operator-Dokumentation.
Im Folgenden sehen Sie ein Beispiel für ein spec-Feld der benutzerdefinierten Ressource serviceMonitor, das den Labelschlüssel alloydbomni.internal.dbadmin.gdc.goog/task-type und den Port metricsalloydbomni enthält. Die benutzerdefinierte Ressource serviceMonitor überwacht und erfasst alle Kubernetes-Dienste in allen Namespaces.
Weitere Informationen zur vollständigen ServiceMonitor-Definition finden Sie in der benutzerdefinierten Ressourcendefinition für ServiceMonitor .
v1.0
spec:
selector:
matchLabels:
alloydbomni.internal.dbadmin.goog/task-type: monitoring
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Version < 1.0
spec:
selector:
matchExpressions:
- key: alloydbomni.internal.dbadmin.gdc.goog/task-type
operator: Exists
values: []
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Messwerte mit Grafana ansehen
Verwenden Sie das Monitoring-Dashboard, um Messwerte in AlloyDB Omni in Kubernetes visuell darzustellen. Das Monitoring-Dashboard basiert auf einem grundlegenden Beobachtbarkeits-Stack, der aus Prometheus und Grafana besteht. So konfigurieren Sie das Monitoring-Dashboard, um Messwerte aus AlloyDB Omni zu erfassen:
Verwenden Sie den Befehl
wget, um das Grafana-Dashboard herunterzuladen:wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yamlSie müssen den grafana-operator herunterladen und installieren, bevor Sie Grafana in Kubernetes bereitstellen. Eine ausführliche Anleitung finden Sie unter Installation.
Fügen Sie der Grafana-Instanz, auf der Sie das Dashboard installieren, das Label
monitoring.dashboard/product=alloydb-omnihinzu:kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACEErsetzen Sie Folgendes:
GRAFANA_INSTANCE_NAME: der Name der Grafana-Instanz, in der Sie das Dashboard platzierenNAMESPACE: der Namespace, in dem Sie den Grafana-Operator bereitgestellt haben
Verwenden Sie den folgenden Befehl, um die Grafana-Dashboardkonfiguration auf Ihren AlloyDB Omni-Cluster in Kubernetes anzuwenden:
kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACEInformationen zur Verwendung des Grafana-Operators finden Sie in der Dokumentation zum Grafana-Operator.
Informationen zum Konfigurieren von Grafana für die Verwendung von Prometheus als Datenquelle finden Sie unter Datenquellen.
Führen Sie einen der folgenden Schritte aus, um zu prüfen, ob Grafana richtig konfiguriert ist:
- Die Sammlung von Grafana-Panels finden Sie im AlloyDB Omni-Dashboard.
Rufen Sie Informationen zum Grafana-Dashboard in einem Kubernetes-Cluster ab:
kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'Wenn der Befehl
Truezurückgibt, wurdealloydb-omni-dashboarderfolgreich auf der Grafana-Instanz bereitgestellt.
Systemmesswerte mit Systemstatistiken ansehen
Sie können Echtzeit- und Verlaufs-Infrastrukturmesswerte für Ihre AlloyDB Omni-Instanzen mit System Insights in der AlloyDB Omni-Web-Benutzeroberfläche überwachen. System Insights fragt die Prometheus-Messwerte ab, die vom AlloyDB Omni-Monitoring-Agent exportiert werden, um Diagramme zur Ressourcenauslastung anzuzeigen.
So rufen Sie Systemmesswerte in der Web-UI auf:
- Stellen Sie eine Verbindung zur Web-UI her und wählen Sie Ihren Cluster aus.
- Klicken Sie im Navigationsmenü auf Systemstatistiken.
- Optional: Wählen Sie in einem Cluster mit mehreren Knoten in der Liste Filtern nach: Instanzen einen bestimmten Instanzendpunkt aus (z. B.
localhost:9187). - Wählen Sie ein Zeitfenster (1 Stunde, 6 Stunden, 1 Tag oder 7 Tage) aus, um den Beobachtungszeitraum für alle Diagramme anzupassen.
- Sehen Sie sich die Diagramme zur Systemtelemetrie an:
- CPU-Auslastung: Zeigt die prozentuale CPU-Auslastung im Zeitverlauf an.
- Arbeitsspeichernutzung: Zeigt den Prozentsatz des zugewiesenen Arbeitsspeichers an, der im Laufe der Zeit verwendet wird.
- Verfügbarer Arbeitsspeicher: Zeigt den Prozentsatz des im Laufe der Zeit verfügbaren unbelegten Arbeitsspeichers an.
- Arbeitsspeicherlimit: Zeigt das konfigurierte Arbeitsspeicherkontingent (in GB) für die Instanz an.
- Speicher- und Laufwerk-E/A: Zeigt sechs zusätzliche Diagramme an, in denen die Speichernutzung, das Speicherlimit, die Anzahl der Laufwerklesevorgänge, die gelesenen Byte, die Anzahl der Laufwerkschreibvorgänge und die geschriebenen Byte erfasst werden.
AlloyDB Omni deinstallieren
Kubernetes
Datenbankcluster löschen
Wenn Sie Ihren Datenbankcluster löschen möchten, legen Sie in seinem Manifest isDeleted auf true fest.
Dazu können Sie den folgenden Befehl verwenden.
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=mergeErsetzen Sie DB_CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.
AlloyDB Omni-Operator deinstallieren
So deinstallieren Sie den AlloyDB Omni Kubernetes-Operator aus Ihrem Kubernetes-Cluster:
Löschen Sie alle Ihre Datenbankcluster:
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 doneWarten Sie, bis der AlloyDB Omni Kubernetes-Operator alle Ihre Datenbankcluster gelöscht hat. Mit dem folgenden Befehl können Sie prüfen, ob noch Datenbankressourcen vorhanden sind:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespacesLöschen Sie andere Ressourcen, die vom AlloyDB Omni Kubernetes-Operator erstellt wurden:
kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespacesDeinstallieren Sie den AlloyDB Omni Kubernetes-Operator:
helm uninstall alloydbomni-operator --namespace alloydb-omni-systemBereinigen Sie Secrets, benutzerdefinierte Ressourcenbeschreibungen und Namespaces, die mit dem AlloyDB Omni Kubernetes-Operator zusammenhängen:
kubectl delete certificate -n alloydb-omni-system --allkubectl 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 -nkubectl delete crd -l alloydb-omni=truekubectl delete ns alloydb-omni-system
Größe des Kubernetes-basierten Datenbankclusters ändern
Wenn Sie die Größe der CPU, des Arbeitsspeichers oder des Speicherplatzes Ihres Kubernetes-basierten Datenbankclusters ändern möchten, aktualisieren Sie das Feld resources der Manifeste, die seinen Pod definieren. Der AlloyDB Omni-Operator wendet die neuen Spezifikationen sofort auf Ihren Datenbank-Pod an.
Weitere Informationen zur Manifestsyntax des AlloyDB Omni-Operators finden Sie unter Datenbankcluster erstellen.
Für das Ändern der Ressourcen eines laufenden Datenbankclusters gelten die folgenden Einschränkungen:
- Sie können die Größe eines Laufwerks nur erhöhen, wenn die angegebene
storageClassdie Erweiterung von Volumes unterstützt. - Sie können die Größe eines Laufwerks nicht verringern.