Comprobar la salud del DCS de Patroni (etcd/Consul) y de la REST API
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 leaderQué hace
Comprueba el quorum, el leader y la capacidad del DCS donde Patroni mantiene el leader lock, y la visión que cada miembro tiene de su propio rol a través de la REST API de Patroni. El endpoint /primary es la base de los health checks del balanceador de carga (HAProxy).
Cuándo usarlo
Cuando Patroni registra 'DCS is not accessible', tras un demote/failover inesperado y como comprobación de salud rutinaria.
Precaución
Si el DCS pierde el quorum, Patroni no puede renovar el leader lock y degrada el primario a solo lectura (salvo que esté habilitado failsafe_mode, Patroni 3.0+); por tanto, una caída de etcd es una caída de escritura de la base de datos. Cuando el tamaño de la BD de etcd alcanza su cuota (2 GB por defecto), una alarma NOSPACE detiene las escrituras. Ejecute el DCS en al menos 3 nodos con discos separados.
Relacionado
- Mostrar el estado, la topología y el historial del clúster Patroni
- Realizar un switchover planificado con Patroni
- Realizar un failover manual con Patroni
- Reconstruir una réplica dañada con Patroni (reinit)
- Cambiar parámetros de todo el clúster en Patroni (edit-config) y aplicar los reinicios pendientes
- Poner Patroni en modo mantenimiento y salir de él (pause/resume)