Проверить работоспособность DCS Patroni (etcd/Consul) и REST API
PostgreSQLPatroniКоманда
# etcd v3 (default API in etcd 3.4+): member health, leader, raft term and DB size
etcdctl --endpoints=https://<etcd1>:2379,https://<etcd2>:2379,https://<etcd3>:2379 --cacert=/etc/etcd/ca.crt endpoint health --cluster -w table
etcdctl --endpoints=https://<etcd1>:2379 --cacert=/etc/etcd/ca.crt endpoint status --cluster -w table
etcdctl --endpoints=https://<etcd1>:2379 --cacert=/etc/etcd/ca.crt alarm list
# Consul:
consul members
consul operator raft list-peers
# Patroni REST API (on each member):
curl -s http://<member>:8008/cluster | python3 -m json.tool
curl -s -o /dev/null -w '%{http_code}\n' http://<member>:8008/primary # 200 = leader, 503 = not leaderЧто делает
Проверяет кворум, leader и ёмкость DCS, где Patroni держит leader lock, а также собственное представление каждого участника о своей роли через REST API Patroni. Endpoint /primary лежит в основе проверок работоспособности балансировщика нагрузки (HAProxy).
Когда использовать
Когда Patroni пишет в журнал 'DCS is not accessible', после неожиданного demote/failover и как регулярная проверка работоспособности.
Внимание
Если DCS теряет кворум, Patroni не может продлить leader lock и понижает primary до режима только чтения (если не включён failsafe_mode, Patroni 3.0+); поэтому сбой etcd — это простой записи в базу данных. Когда размер БД etcd достигает квоты (по умолчанию 2 GB), алерт NOSPACE останавливает запись. Запускайте DCS минимум на 3 узлах на отдельных дисках.
Связанные материалы
- Показать состояние, топологию и историю кластера Patroni
- Выполнить плановый switchover через Patroni
- Выполнить ручной failover через Patroni
- Пересоздать сломанную реплику через Patroni (reinit)
- Изменить параметры всего кластера в Patroni (edit-config) и применить ожидающие перезапуски
- Перевести Patroni в режим обслуживания и обратно (pause/resume)