Verificar a saúde do DCS (etcd/Consul) e da REST API do Patroni
PostgreSQLPatroniComando
# etcd v3 (default API in etcd 3.4+): member health, leader, raft term and DB size
etcdctl --endpoints=https://<etcd1>:2379,https://<etcd2>:2379,https://<etcd3>:2379 --cacert=/etc/etcd/ca.crt endpoint health --cluster -w table
etcdctl --endpoints=https://<etcd1>:2379 --cacert=/etc/etcd/ca.crt endpoint status --cluster -w table
etcdctl --endpoints=https://<etcd1>:2379 --cacert=/etc/etcd/ca.crt alarm list
# Consul:
consul members
consul operator raft list-peers
# Patroni REST API (on each member):
curl -s http://<member>:8008/cluster | python3 -m json.tool
curl -s -o /dev/null -w '%{http_code}\n' http://<member>:8008/primary # 200 = leader, 503 = not leaderO que faz
Verifica o quorum, o leader e a capacidade do DCS onde o Patroni guarda o leader lock e a visão que cada membro tem do próprio papel pela REST API do Patroni. O endpoint /primary é a base dos health checks do load balancer (HAProxy).
Quando usar
Quando o Patroni registra 'DCS is not accessible', após um demote/failover inesperado e como verificação de saúde de rotina.
Atenção
Se o DCS perder o quorum, o Patroni não consegue renovar o leader lock e rebaixa o primário para somente leitura (a menos que o failsafe_mode, Patroni 3.0+, esteja habilitado); uma queda do etcd é, portanto, uma indisponibilidade de escrita do banco. Quando o tamanho do banco do etcd atinge a cota (padrão 2 GB), um alarme NOSPACE interrompe as gravações. Rode o DCS em pelo menos 3 nós com discos separados.
Relacionados
- Mostrar o status, a topologia e o histórico do cluster Patroni
- Executar um switchover planejado com Patroni
- Executar um failover manual com Patroni
- Reconstruir uma réplica quebrada com Patroni (reinit)
- Alterar parâmetros de todo o cluster no Patroni (edit-config) e aplicar restarts pendentes
- Colocar o Patroni em modo de manutenção e retirar (pause/resume)