Zum Inhalt

Fehlerbehebung bei patroni

Info

Das gesamte Verfahren muss als root durchgeführt werden. Um Ihre Berechtigungen auf root zu erhöhen, können Sie den Befehl su - verwenden.

Achtung

Um dieses Verfahren durchzuführen, müssen Sie die zusätzlichen Konfigurationen für patronictl vorgenommen haben.

patroni ist ein Hochverfügbarkeits-Orchestrator für PostgreSQL. Er automatisiert die Verwaltung eines PostgreSQL-Clusters, indem er bei einem Vorfall die Wahl des Leaders, das Failover und die Synchronisierung der Knoten übernimmt.

Im PostgreSQL-Cluster von CyberElements Bastion stützt sich patroni auf etcd, um den Zustand des Clusters zu speichern und bereitzustellen. Er überwacht kontinuierlich den Zustand der PostgreSQL-Instanzen und stellt sicher, dass zu jedem Zeitpunkt nur ein Knoten als Leader bestimmt ist.

Fällt der Leader-Knoten aus, orchestriert patroni über den verteilten Konfigurationsspeicher etcd automatisch eine Wahl, um einen neuen Leader hochzustufen und die Verfügbarkeit des Dienstes aufrechtzuerhalten.

patroni hängt daher von etcd ab und kann nicht ordnungsgemäß funktionieren, wenn etcd nicht funktioniert.

Protokolle

Das gesamte Verfahren stützt sich auf die Protokolle des Dienstes patroni, die Sie mit dem folgenden Befehl abrufen:

1
journalctl -u patroni

Tipp

Um die Protokolle live zu verfolgen, fügen Sie dem Befehl die Option -f hinzu:

1
journalctl -fu patroni

Info

Die Protokolle von patroni sind auch in /var/log/syslog verfügbar.

Erläuterungen zu Fehlerprotokollen

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

Wenn etcd nicht funktioniert oder nicht erreichbar ist, kann patroni die folgenden Fehler schreiben:

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>

Name eines der Knoten des PostgreSQL-Clusters.

In diesem Fall müssen Sie eine Fehlerbehebung bei etcd durchführen.