Vérifier la santé du DCS Patroni (etcd/Consul) et de l'API REST
PostgreSQLPatroniCommande
# 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 leaderCe que fait la commande
Vérifie le quorum, le leader et la capacité du DCS où Patroni détient le verrou de leader, ainsi que la vue que chaque membre a de son propre rôle via l'API REST de Patroni. Le point de terminaison /primary sert de base aux health checks du load balancer (HAProxy).
Quand l'utiliser
Lorsque Patroni journalise 'DCS is not accessible', après un demote/failover inattendu, et comme contrôle de santé de routine.
Attention
Si le DCS perd le quorum, Patroni ne peut pas renouveler le verrou de leader et rétrograde la primaire en lecture seule (sauf si failsafe_mode, Patroni 3.0+, est activé) ; une panne d'etcd est donc une interruption des écritures en base. Lorsque la taille de la base etcd atteint son quota (2 GB par défaut), une alarme NOSPACE stoppe les écritures. Faites tourner le DCS sur au moins 3 nœuds avec des disques séparés.
Voir aussi
- Afficher l'état, la topologie et l'historique du cluster Patroni
- Effectuer un switchover planifié avec Patroni
- Effectuer un failover manuel avec Patroni
- Reconstruire une réplique défaillante avec Patroni (reinit)
- Modifier les paramètres du cluster dans Patroni (edit-config) et appliquer les redémarrages en attente
- Mettre Patroni en mode maintenance et en sortir (pause/resume)