Gå til indholdet

Fejlfinding for patroni

Info

Hele proceduren skal udføres som root. For at hæve dine privilegier til root kan du bruge kommandoen su -.

Advarsel

For at følge denne procedure skal du have udført de yderligere konfigurationer for patronictl.

patroni er en orkestrator til høj tilgængelighed for PostgreSQL. Den automatiserer administrationen af et PostgreSQL-cluster ved at håndtere valget af leader-noden, failover og synkronisering af noderne, når der opstår et problem.

I PostgreSQL-clusteret for CyberElements Bastion er patroni afhængig af etcd til at gemme og dele clusterets tilstand. Den overvåger løbende PostgreSQL-instansernes tilstand og sørger for, at der kun er én node, der er udpeget som leader ad gangen.

Hvis leader-noden svigter, orkestrerer patroni automatisk et valg via det distribuerede konfigurationslager etcd for at forfremme en ny leader og bevare tjenestens tilgængelighed.

patroni afhænger derfor af etcd og kan ikke fungere korrekt, hvis etcd ikke fungerer.

Logs

Hele proceduren bygger på logs fra tjenesten patroni, som du får med kommandoen nedenfor:

1
journalctl -u patroni

Tip

For at følge logs i realtid skal du tilføje indstillingen -f til kommandoen:

1
journalctl -fu patroni

Info

Logs fra patroni er også tilgængelige i /var/log/syslog.

Forklaring af fejllogs

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

Når etcd ikke fungerer eller ikke kan nås, kan patroni skrive følgende fejl:

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>

Navnet på en af noderne i PostgreSQL-clusteret.

I så fald skal du foretage fejlfinding for etcd.