Przejdź do treści

Rozwiązywanie problemów z patroni

Info

Całą procedurę wykonuj jako root. Aby podnieść swoje uprawnienia do poziomu root, możesz użyć polecenia su -.

Ostrzeżenie

Aby wykonać tę procedurę, musisz wcześniej przeprowadzić dodatkowe konfiguracje dla patronictl.

patroni to orkiestrator wysokiej dostępności dla PostgreSQL. Automatyzuje zarządzanie clusterem PostgreSQL, obsługując wybór lidera, przełączanie awaryjne i synchronizację węzłów w razie incydentu.

W clusterze PostgreSQL CyberElements Bastion patroni opiera się na etcd w celu przechowywania i udostępniania stanu clustera. Stale monitoruje stan instancji PostgreSQL i dba o to, aby w danym momencie tylko jeden węzeł był wyznaczony jako lider.

Jeśli węzeł lidera ulegnie awarii, patroni automatycznie przeprowadza wybory za pośrednictwem rozproszonego magazynu konfiguracji etcd, aby wyznaczyć nowego lidera i utrzymać dostępność usługi.

patroni zależy więc od etcd i nie może działać prawidłowo, jeśli etcd nie działa.

Logi

Cała procedura opiera się na logach usługi patroni, które uzyskasz za pomocą poniższego polecenia:

1
journalctl -u patroni

Wskazówka

Aby śledzić logi na bieżąco, dodaj do polecenia opcję -f:

1
journalctl -fu patroni

Info

Logi patroni są również dostępne w /var/log/syslog.

Objaśnienia logów błędów

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

Gdy etcd nie działa lub jest nieosiągalny, patroni może zapisywać następujące błędy:

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>

Nazwa jednego z węzłów clustera PostgreSQL.

W takim przypadku rozwiąż problemy z etcd.