Saltar a contenido

Resolución de problemas de patroni

Info

Todo el procedimiento debe realizarse como root. Para elevar sus privilegios a root, puede utilizar el comando su -.

Atención

Para seguir este procedimiento, es necesario haber realizado las configuraciones adicionales para patronictl.

patroni es un orquestador de alta disponibilidad para PostgreSQL. Automatiza la gestión de un clúster de PostgreSQL asegurando la elección del líder, la conmutación por error (failover) y la sincronización de los nodos en caso de incidente.

En el clúster de PostgreSQL de CyberElements Bastion, patroni se apoya en etcd para almacenar y compartir el estado del clúster. Supervisa de forma continua el estado de las instancias de PostgreSQL y se asegura de que un solo nodo sea designado líder en un momento dado.

Si el nodo líder falla, patroni orquesta automáticamente una elección mediante el almacén de configuración distribuido etcd, con el fin de promover un nuevo líder y mantener la disponibilidad del servicio.

Por tanto, patroni depende de etcd y no puede funcionar correctamente si etcd no funciona.

Logs

Todo este procedimiento se basa en los logs del servicio patroni, que se obtienen con el siguiente comando:

1
journalctl -u patroni

Consejo

Para consultar los logs en directo, añada la opción -f al comando:

1
journalctl -fu patroni

Info

Los logs de patroni también están disponibles en /var/log/syslog.

Explicación de los logs de error

ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)

Cuando etcd no funciona o no es accesible, patroni puede escribir los siguientes errores:

1
2
3
4
5
6
7
8
patroni[1812916]: 2026-04-17 15:23:51,431 INFO: Retrying on https://<PSQL_NODE_NAME>:2379
patroni[1812916]: 2026-04-17 15:23:51,434 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Max retries exceeded with url: /v3/lease/keepalive (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8924a49fd0>: Failed to establish a new connection: [Errno 111] Connection refused'))")
patroni[1812916]: 2026-04-17 15:23:51,434 INFO: Reconnection allowed, looking for another server.
patroni[1812916]: 2026-04-17 15:23:51,434 INFO: Retrying on https://<PSQL_NODE_NAME>:2379
patroni[1812916]: 2026-04-17 15:23:51,438 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Max retries exceeded with url: /v3/lease/keepalive (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8924a48c50>: Failed to establish a new connection: [Errno 111] Connection refused'))")
patroni[1812916]: 2026-04-17 15:23:51,438 INFO: Reconnection allowed, looking for another server.
patroni[1812916]: 2026-04-17 15:23:53,940 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: ReadTimeoutError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Read timed out. (read timeout=2.0772262712319693)")
patroni[1812916]: 2026-04-17 15:23:53,940 INFO: Reconnection allowed, looking for another server.
<PSQL_NODE_NAME>

Nombre de uno de los nodos del clúster de PostgreSQL.

En este caso, es necesario resolver los problemas de etcd.