DebeziumReplicationSlotInactive
Что означает алерт
Слот репликации debezium_iams в PostgreSQL stage неактивен 5 минут: к нему не подключён ни один клиент. Severity: critical.
Debezium не читает изменения, события в Kafka не поступают. WAL копится до лимита 10 ГБ, после чего слот будет сброшен.
Лейблы алерта: slot_name.
Диагностика (по шагам)
Команды и переменная POD описаны в разделе 2 общего документа: Debezium: устройство и типовые операции.
- Проверить под:
kubectl --context yc-sarex-stage -n debezium get pods
Если пода нет или он не Running, перейти к DebeziumConnectNotReady.
- Проверить состояние коннектора и задачи:
kubectl --context yc-sarex-stage -n debezium exec $POD -- curl -s localhost:8083/connectors/debezium-iams/status
| Ответ | Значение | Действие |
|---|---|---|
tasks[0].state: FAILED |
задача упала, причина в поле trace |
раздел «Как починить», пункт 1 |
404 |
коннектор не зарегистрирован | раздел «Как починить», пункт 2 |
connector.state: PAUSED или STOPPED |
коннектор остановлен вручную | выяснить, кто остановил; запуск: PUT /connectors/debezium-iams/resume |
задача RUNNING |
задача не может получить слот | раздел «Как починить», пункт 3 |
- Проверить слот (SQL из раздела 2 общего документа). Если
wal_statusравенlost, перейти к DebeziumReplicationSlotLost.
Как починить
- Задача в
FAILED. Прочитатьtrace. При ошибкеreplication slot "debezium_iams" is active for PIDили сетевой ошибке перезапустить задачу (раздел 3 общего документа). При ошибке на конкретном событии (сериализация, схема таблицы) перезапуск не поможет: зафиксироватьtraceи эскалировать. - Коннектор не зарегистрирован. Перезапустить пайплайн
deploy_stageв репозиторииinfra/debezium: Jobdebezium-iams-registerзарегистрирует коннектор заново. - Задача
RUNNING, слот неактивен. Посмотреть в логе повторы подключения к PostgreSQL. Если слот занят чужим процессом (active_pidне пустой при неработающем Debezium), завершить его:SELECT pg_terminate_backend(<active_pid>);, затем перезапустить задачу.
Критерий закрытия
- Задача коннектора в
RUNNING. - Слот:
active = true,wal_status = reserved, значениеunconfirmedуменьшается. - Алерт перешёл в
inactive.