Faça a gestão das funções de utilizador
O AlloyDB Omni usa o mesmo conjunto de funções de utilizador do PostgreSQL predefinidas que o AlloyDB para PostgreSQL inclui, com as seguintes diferenças:
O AlloyDB Omni inclui uma função de superutilizador denominada
alloydbadmin
e uma função de não superutilizador denominadaalloydbmetadata
.O utilizador
postgres
predefinido tem uma função de superutilizador.Todas as outras funções de utilizador predefinidas não têm privilégios. Estão reservados para potenciais utilizações no futuro.
Configure uma base de dados AlloyDB Omni
Tal como com o AlloyDB para PostgreSQL, é uma prática recomendada seguir estes passos quando configurar uma base de dados:
Defina ou importe as suas bases de dados com a
postgres
função de utilizador. Numa nova instalação, esta função tem privilégios de superutilizador e não requer palavra-passe.Crie novas funções de utilizador com o nível de acesso correto às tabelas da sua aplicação, novamente através da função de utilizador
postgres
.Configure a sua aplicação para se ligar à base de dados através destas novas funções de acesso limitado.
Pode criar e definir todas as novas funções de utilizador de que precisar. Não modifique nem elimine nenhuma das funções de utilizador com as quais o AlloyDB Omni é fornecido.
Para mais informações, consulte o artigo Faça a gestão dos utilizadores e das funções do AlloyDB Omni.
Monitorize o AlloyDB Omni
A monitorização da instalação do AlloyDB Omni inclui a leitura e a análise dos ficheiros de registo do AlloyDB Omni.
Para ver uma lista das métricas disponíveis, consulte Métricas do AlloyDB Omni.
O AlloyDB Omni em execução no Kubernetes fornece um conjunto de métricas básicas disponíveis como pontos finais do Prometheus. Para ver uma lista das métricas disponíveis, consulte o artigo Métricas do AlloyDB Omni.
Além disso, o AlloyDB Omni em execução no Kubernetes expõe métricas de recursos personalizados que tiram partido do kube-state-metrics (KSM). Para ativar as métricas de recursos personalizados, consulte o artigo Monitorize recursos personalizados do operador Kubernetes do AlloyDB Omni.
Kubernetes
Encontre os ficheiros de registo do cluster da base de dados
Os ficheiros postgresql.audit
e postgresql.log
estão localizados no sistema de ficheiros do pod da base de dados. postgresql.audit
só está presente se tiver
ativado o pgaudit.
Para aceder a estes ficheiros, siga estes passos:
Defina uma variável de ambiente que contenha o nome do pod da base de dados.
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}'`
Substitua
DB_CLUSTER_NAME
pelo nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.Execute um shell no pod da base de dados como raiz.
kubectl exec ${DB_POD} -it -- /bin/bash
Encontre os ficheiros de registo no diretório
/obs/diagnostic/
:/obs/diagnostic/postgresql.audit
/obs/diagnostic/postgresql.log
Apresente serviços de monitorização
v1.0
Quando cria um cluster de base de dados, o AlloyDB Omni cria o seguinte serviço de monitorização para cada CR de instância do cluster de base de dados no mesmo espaço de nomes:
al-INSTANCE_NAME-monitoring-system
Para listar os serviços de monitorização, execute o seguinte comando.
kubectl get svc -n NAMESPACE | grep monitoring
Substitua NAMESPACE
por um espaço de nomes ao qual o seu cluster pertence.
A resposta de exemplo seguinte mostra os serviços al-1060-dbc-monitoring-system
,
al-3de6-dbc-monitoring-system
e al-4bc0-dbc-monitoring-system
. Cada serviço corresponde a uma instância.
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
Versão < 1.0
Quando cria um cluster de base de dados, o AlloyDB Omni cria os seguintes serviços de monitorização no mesmo espaço de nomes que o cluster de base de dados:
DB_CLUSTER-monitoring-db
DB_CLUSTER-monitoring-system
Para listar os serviços de monitorização, execute o seguinte comando.
kubectl get svc -n NAMESPACE | grep monitoring
Substitua NAMESPACE
por um espaço de nomes ao qual o seu cluster pertence.
A resposta de exemplo seguinte mostra o serviço al-2953-dbcluster-foo7-monitoring-system
e o serviço 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
Veja métricas do Prometheus a partir da linha de comandos
A porta 9187
é denominada metricsalloydbomni
para todos os serviços de monitorização.
Configure o encaminhamento de portas do seu ambiente local para o serviço de monitorização.
kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomni
Substitua o seguinte:
MONITORING_SERVICE
: o nome do serviço de monitorização que quer encaminhar, por exemplo,al-1060-dbc-monitoring-system
.NAMESPACE
: o espaço de nomes ao qual o cluster pertence.MONITORING_METRICS_PORT
: Uma porta TCP disponível local.
A resposta seguinte mostra que os serviços estão a ser encaminhados.
Forwarding from 127.0.0.1:9187 -> 9187 Forwarding from [::1]:9187 -> 9187
Enquanto o comando anterior é executado, pode aceder às métricas de monitorização através de HTTP na porta que especificou. Por exemplo, pode usar
curl
para ver todas as métricas como texto simples:curl http://localhost:MONITORING_METRICS_PORT/metrics
Veja métricas através da API Prometheus
A chave de etiqueta alloydbomni.internal.dbadmin.goog/task-type
e a porta metricsalloydbomni
estão disponíveis por predefinição para todos os serviços de monitorização no AlloyDB Omni. Pode usá-los em conjunto com um único recurso personalizado serviceMonitor
para selecionar todos os serviços para todos os espaços de nomes no cluster da base de dados.
Para mais informações sobre a utilização da API Prometheus, consulte a documentação do operador Prometheus.
Segue-se um exemplo do campo spec
do recurso personalizado serviceMonitor
que inclui a chave da etiqueta alloydbomni.internal.dbadmin.gdc.goog/task-type
e a porta metricsalloydbomni
. O recurso personalizado serviceMonitor
monitoriza e recolhe todos os serviços do Kubernetes em todos os espaços de nomes
Para mais informações sobre a definição completa de ServiceMonitor
, consulte a definição de recursos personalizados de ServiceMonitor
.
v1.0
spec:
selector:
matchLabels:
alloydbomni.internal.dbadmin.goog/task-type: monitoring
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Versão < 1.0
spec:
selector:
matchExpressions:
- key: alloydbomni.internal.dbadmin.gdc.goog/task-type
operator: Exists
values: []
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Veja métricas através do Grafana
Para uma representação visual das métricas no AlloyDB Omni no Kubernetes, use o painel de controlo de monitorização. O painel de controlo de monitorização baseia-se numa pilha de observabilidade básica que consiste no Prometheus e no Grafana. Para configurar o painel de controlo de monitorização para recolher métricas do AlloyDB Omni, siga estes passos:
Para transferir o painel de controlo do Grafana, use o comando
wget
:wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yaml
Tem de transferir e instalar o grafana-operator antes de implementar o Grafana no Kubernetes. Para ver instruções detalhadas, consulte o artigo Instalação.
Adicione a etiqueta
monitoring.dashboard/product=alloydb-omni
à instância do Grafana onde instala o painel de controlo:kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACE
Substitua o seguinte:
GRAFANA_INSTANCE_NAME
: o nome da instância do Grafana onde colocou o painel de controlo.NAMESPACE
: o espaço de nomes onde implementou o operador do Grafana.
Para aplicar a configuração do painel de controlo do Grafana ao seu cluster do AlloyDB Omni no Kubernetes, use o seguinte comando:
kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACE
Consulte a documentação do operador do Grafana para obter informações sobre a utilização do operador do Grafana.
Para configurar o Grafana para usar o Prometheus como uma origem de dados, consulte o artigo Origens de dados.
Para verificar se o Grafana está configurado corretamente, faça uma das seguintes ações:
- Veja a coleção de painéis do Grafana no painel de controlo do AlloyDB Omni.
Obtenha informações sobre o painel de controlo do Grafana num cluster do Kubernetes:
kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'
Se o comando devolver
True
, oalloydb-omni-dashboard
é implementado com êxito na instância do Grafana.
Atualize o AlloyDB Omni
Para atualizar do AlloyDB Omni 15.5.2 ou anterior para a versão 15.5.4, siga as instruções em Migre de uma versão anterior do AlloyDB Omni para a versão mais recente.
Para atualizar a partir da versão 15.5.4 e posteriores:
Reinicie o AlloyDB Omni com uma nova versão da imagem.
Certifique-se de que especifica o diretório de dados para corresponder ao mesmo caminho usado em versões anteriores do AlloyDB Omni.
Desinstale o AlloyDB Omni
Kubernetes
Elimine o cluster da base de dados
Para eliminar o cluster da base de dados, defina isDeleted
como true
no respetivo manifesto.
Pode fazê-lo com o seguinte comando.
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=merge
Substitua DB_CLUSTER_NAME
pelo nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.
Desinstale o operador do AlloyDB Omni
Para desinstalar o operador do Kubernetes do AlloyDB Omni do seu cluster do Kubernetes, siga estes passos:
Elimine todos os clusters de base de dados:
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
Aguarde que o operador do Kubernetes do AlloyDB Omni elimine todos os clusters de base de dados. Use o seguinte comando para verificar se restam recursos da base de dados:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
Elimine outros recursos que o operador do Kubernetes do AlloyDB Omni criou:
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
Desinstale o operador do Kubernetes do AlloyDB Omni:
helm uninstall alloydbomni-operator --namespace alloydb-omni-system
Limpe os segredos, as descrições de recursos personalizados e os espaços de nomes relacionados com o operador do Kubernetes do AlloyDB Omni:
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
Redimensione o cluster de base de dados baseado no Kubernetes
Para redimensionar a CPU, a memória ou o armazenamento do cluster de base de dados baseado no Kubernetes,
atualize o campo resources
dos manifestos que definem o respetivo pod. O operador do AlloyDB Omni aplica as novas especificações ao seu pod da base de dados imediatamente.
Para mais informações sobre a sintaxe do manifesto do operador AlloyDB Omni, consulte o artigo Crie um cluster de base de dados.
Aplicam-se as seguintes restrições à modificação dos recursos de um cluster de base de dados em execução:
- Só pode aumentar o tamanho de um disco se o
storageClass
especificado suportar a expansão do volume. - Não pode diminuir o tamanho de um disco.