Gå till innehållet

Felsökning av patroni

Info

Hela proceduren ska utföras som root. För att höja dina privilegier till root kan du använda kommandot su -.

Varning

För att kunna följa denna procedur måste du ha utfört de ytterligare konfigurationerna för patronictl.

patroni är en orkestrerare för hög tillgänglighet för PostgreSQL. Den automatiserar hanteringen av ett PostgreSQL-cluster genom att sköta val av ledare, redundansväxling (failover) och synkronisering av noderna när en incident inträffar.

I PostgreSQL-clustret för CyberElements Bastion förlitar sig patroni på etcd för att lagra och dela clustrets tillstånd. Den övervakar kontinuerligt tillståndet för PostgreSQL-instanserna och säkerställer att endast en nod är utsedd till ledare vid varje given tidpunkt.

Om ledarnoden slutar fungera orkestrerar patroni automatiskt ett val via det distribuerade konfigurationslagret etcd, för att befordra en ny ledare och hålla tjänsten tillgänglig.

patroni är därför beroende av etcd och kan inte fungera korrekt om etcd inte fungerar.

Loggar

Hela proceduren bygger på loggarna för tjänsten patroni, som du hämtar med kommandot nedan:

1
journalctl -u patroni

Tips

Lägg till alternativet -f i kommandot för att följa loggarna i realtid:

1
journalctl -fu patroni

Info

Loggarna för patroni finns också i /var/log/syslog.

Förklaring av felloggar

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

När etcd inte fungerar eller inte kan nås kan patroni skriva följande fel:

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>

Namnet på en av noderna i PostgreSQL-clustret.

I så fall behöver du felsöka etcd.