Dépannage de patroni¶
Info
L'ensemble de la procédure est à suivre en tant que root. Pour élever ses privilèges en root, il est possible d'utiliser la commande su -.
Attention
Pour suivre cette procédure, il est nécessaire d'avoir effectué les configurations supplémentaires pour patronictl.
patroni est un orchestrateur de haute disponibilité pour PostgreSQL. Il automatise la gestion d'un cluster PostgreSQL en assurant l'élection du leader, la bascule (failover) et la synchronisation des nœuds en cas d'incident.
Dans le cluster PostgreSQL de CyberElements Bastion, patroni s'appuie sur etcd pour stocker et partager l'état du cluster. Il surveille en continu l'état des instances PostgreSQL et s'assure qu'un seul nœud est désigné leader à un instant donné.
En cas de défaillance du nœud leader, patroni orchestre automatiquement une élection au moyen du magasin de configuration distribué etcd, afin de promouvoir un nouveau leader et de maintenir la disponibilité du service.
patroni dépend donc de etcd, et ne peut pas fonctionner correctement si etcd n'est pas fonctionnel.
Logs¶
L'ensemble de cette procédure s'appuie sur les logs du service patroni, que l'on obtient avec la commande ci-dessous :
1 | |
Astuce
Pour consulter les logs en direct, ajoutez l'option -f à la commande :
1 | |
Info
Les logs de patroni sont aussi disponibles dans /var/log/syslog.
Explication des logs d'erreur¶
ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)
Lorsque etcd n'est pas fonctionnel ou pas joignable, patroni peut écrire les erreurs suivantes :
1 2 3 4 5 6 7 8 | |
<PSQL_NODE_NAME>-
Nom de l'un des nœuds du cluster PostgreSQL.
Il est nécessaire dans ce cas de dépanner etcd.