Мониторинг состояния кластера PostgreSQL и хостов
Данные о состоянии кластера и его хостов доступны в консоли управления
Диагностическая информация о состоянии кластера представлена в виде графиков.
Период обновления графиков:
- Для хостов стандартной конфигурации и хостов с увеличенным соотношением количества гигабайт RAM к количеству vCPU (
memory-optimized): 15 секунд. - Для хостов с гарантированной долей vCPU ниже 100% (
burstable): 150 секунд.
Примечание
На графиках автоматически применяются наиболее подходящие кратные единицы измерения (мегабайты, гигабайты и т. д.).
Вы можете настроить алерты в сервисе Yandex Monitoring для получения уведомлений о сбоях в работе кластера. В Yandex Monitoring используются два порога срабатывания алерта: Warning и Alarm. При превышении заданного порога вы получите оповещения через настроенные каналы уведомлений.
Мониторинг состояния кластера
Для просмотра детальной информации о состоянии кластера Managed Service for PostgreSQL:
-
Перейдите
в сервис Managed Service for PostgreSQL. -
Нажмите на имя нужного кластера и выберите
Другое → Мониторинг. -
Чтобы перейти к работе с метриками, дашбордами или алертами в сервисе Yandex Monitoring, нажмите кнопку Открыть в Monium на панели сверху.
На странице появятся следующие графики:
-
В блоке Cluster:
-
PostgreSQL Alive, [boolean] — работоспособность PostgreSQL, для каждого хоста в каждой из ролей: мастера и реплики.
-
Is Primary, [boolean] — показывает, какой хост является мастером и как долго.
-
Replication lag — время задержки репликации.
Важно
Время задержки репликации рассчитывается с точностью до одной секунды. Если задержка меньше одной секунды, ее невозможно отследить с помощью этой метрики.
-
Average CPU usage — среднее время обработки транзакций и выполнения операторов.
-
Maximum CPU usage — пиковая загрузка процессорных ядер.
-
Maximum memory usage — пиковое использование оперативной памяти (в байтах). При высоких нагрузках значение параметра Free уменьшается, остальные — растут.
-
Log errors — количество логированных ошибок в секунду.
-
OOM Count — наличие процессов Out-Of-Memory Killer. Они останавливают приложения, которые расходуют всю память на машине, и предотвращают аварийную остановку ОС.
-
-
В блоке Disk:
- Disk usage on primary — использование дискового пространства на хосте-мастере (в байтах).
- Disk read/write bytes — скорость дисковых операций чтения и записи (байт/с).
- Disk read/write IOPS — интенсивность дисковых операций чтения и записи (операций/с).
- Disk usage by DB — использование дискового пространства по базам данных (в байтах).
- Inode usage on primary — использованное количество inode на хосте-мастере.
- Inode usage by host — использованное количество inode по хостам.
- Total size of temporary files — суммарный размер временных файлов (в байтах).
- Total size of WAL files — суммарный размер файлов WAL (в байтах).
- Free space — свободное дисковое пространство для каждого хоста (в байтах).
- WAL rate in bytes per second — скорость записи файлов WAL в байтах в секунду.
-
В блоке Transactions:
- Transactions/statements per second — количество транзакций и операторов в секунду.
- Average transaction/statement time — среднее время обработки транзакций и выполнения операторов.
- Age of oldest transaction/statement — возраст самой старой транзакции/запроса.
- Statement quantiles — время выполнения операторов по процентилям.
- Transaction quantiles — время обработки транзакций по процентилям.
- Used/Free Transaction IDs (%) — используемые/свободные идентификаторы транзакций в процентах.
- Used/Free Transaction IDs — используемые/свободные идентификаторы транзакций.
-
В блоке Vacuum:
- Vacuum processes — количество процессов, выполняющих операцию вакуумирования.
- Scanning progress — прогресс сканирования в процессе вакуумирования.
- Vacuuming progress — прогресс выполнения операции вакуумирования.
-
В блоке Sessions:
- Sessions read bytes per second — объем прочитанных данных по видам сессий (в байтах).
- Sessions write bytes per second — объем записанных данных по видам сессий (в байтах).
- Session CPU usage cores — количество занятых процессорных ядер по видам сессий.
- Sessions per wait event — количество ожидающих сессий по видам ожидания.
-
В блоке Connections:
- Pooler is alive, [boolean] — работоспособность менеджера подключений, для каждого хоста в каждой из ролей: мастера и реплики.
- Total pooler connections — количество подключений в менеджере подключений: клиентских и серверных.
- TCP connections — количество TCP-подключений в секунду.
-
В блоке Network:
- Packets received/sent — интенсивность обмена данными по сети (пакетов/с).
- Network received/sent bytes — скорость обмена данными по сети (байт/с).
Мониторинг состояния хостов
Для просмотра детальной информации о состоянии отдельных хостов Managed Service for PostgreSQL:
- Перейдите
в сервис Managed Service for PostgreSQL. - Нажмите на имя нужного кластера и выберите вкладку Хосты.
- Нажмите на строку нужного хоста в списке.
На этой странице выводятся графики, показывающие нагрузку на отдельный хост кластера:
-
CPU usage — загрузка процессорных ядер. При повышении нагрузки значение Idle уменьшается.
-
Memory usage — использование оперативной памяти (в байтах). При высоких нагрузках значение параметра Free уменьшается, остальные — растут.
-
Disk usage — использование дискового пространства (в байтах).
-
Disk usage by DB — использование дискового пространства по базам данных (в байтах).
-
Disk IOPS — интенсивность дисковых операций (операций/с).
-
Network Packets — интенсивность обмена данными по сети (пакетов/с).
-
Network Bytes — скорость обмена данными по сети (байт/с).
-
Disk Metrics Details:
- Disk used quota — средний и максимальный процент использования квоты для дисковых операций.
- Disk read throttler latency (percentiles) — задержка чтения, внесенная при превышении квоты диска, по процентилям.
- Disk write throttler latency (percentiles) — задержка записи, внесенная при превышении квоты диска, по процентилям.
- Disk read latency (percentiles) — задержка чтения с диска по процентилям.
- Disk write latency (percentiles) — задержка записи на диск по процентилям.
- Disk read operations — среднее и максимальное количество операций чтения в секунду.
- Disk write operations — среднее и максимальное количество операций записи в секунду.
- Disk read bytes — средняя и максимальная скорость чтения с диска (байт/с).
- Disk write bytes — средняя и максимальная скорость записи на диск (байт/с).
На графике Disk IOPS характеристика Read растет при активном чтении из базы данных, а Write — при записи в нее.
Для хостов с ролью Replica нормально преобладание Received над Sent на графиках Network Bytes и Network Packets.
Мониторинг состояния балансировщика DB Proxy
Если в вашем кластере Managed Service for PostgreSQL включен балансировщик DB Proxy, вы можете просмотреть детальную информацию о его состоянии:
-
Перейдите в сервис Managed Service for PostgreSQL.
-
Нажмите на имя нужного кластера и выберите вкладку DB Proxy.
-
Чтобы перейти к работе с метриками, дашбордами или алертами в сервисе Yandex Monitoring, нажмите кнопку Открыть в Monium на панели сверху.
На странице появятся следующие графики:
- Balancer is alive, [boolean] — работоспособность балансировщика на каждом хосте кластера.
- Balancer TCP connections by host — количество TCP-подключений к балансировщику на каждом хосте кластера.
- Balancer bytes received per second — объем данных, проходящий через балансировщик за секунду.
- Balancer CPU usage — доля использования балансировщиком процессорных ядер на каждом хосте кластера.
- Balancer memory usage — лимит оперативной памяти и ее использование балансировщиком на каждом хосте кластера.
Настройка алертов в Yandex Monitoring
- В консоли управления
выберите каталог с кластером, для которого нужно настроить алерты. - Перейдите
в сервис Monitoring. - В блоке Сервисные дашборды выберите:
- Managed Service for PostgreSQL — Cluster Overview для настройки алертов кластера;
- Managed Service for PostgreSQL — Host Overview для настройки алертов хостов.
- На нужном графике нажмите на значок
и выберите пункт Создать алерт. - Если на графике несколько показателей, выберите запрос данных для формирования метрики и нажмите Продолжить. Подробнее о языке запросов в документации Yandex Monitoring.
- Задайте значения порогов
AlarmиWarningдля срабатывания алерта. - Нажмите кнопку Создать алерт.
Чтобы настроить автоматический мониторинг других показателей состояния кластера:
- Создайте алерт.
- Добавьте метрику состояния.
- В параметрах алерта задайте значения порогов для оповещения.
Рекомендуемые значения порогов для некоторых метрик:
| Метрика | Обозначение | Alarm |
Warning |
|---|---|---|---|
| Задержка репликации | postgres-replication_lag |
60 |
5 |
| Количество работоспособных хостов | postgres-is_alive |
<количество_хостов> - 2 |
<количество_хостов> - 1 |
| Среднее время выполнения запросов | pooler-avg_query_time |
— | 2000 |
| Размер использованного хранилища | disk.used_bytes |
90% от размера хранилища | 80% от размера хранилища |
Для метрики disk.used_bytes значения порогов Alarm и Warning задаются только в байтах. Например, рекомендуемые значения для диска размером в 100 ГБ:
Alarm—96636764160байтов (90%).Warning—85899345920байтов (80%).
Текущий размер хранилища можно посмотреть в детальной информации о кластере. Полный список поддерживаемых метрик вы найдете в документации Monitoring.
Состояние и статус кластера
Состояние кластера указывает на исправность его хостов, а Статус показывает, запущен кластер, остановлен или находится в промежуточном состоянии.
Для просмотра состояния и статуса кластера:
- Перейдите
в сервис Managed Service for PostgreSQL. - Наведите курсор на индикатор в столбце Доступность в строке нужного кластера.
Состояния кластера
| Состояние | Описание | Предлагаемые действия |
|---|---|---|
| ALIVE | Кластер работает в штатном режиме. | Действий не требуется. |
| DEGRADED | Кластер работает не на полную мощность: минимум один из хостов имеет состояние, отличное от ALIVE. |
Выполните диагностику:
|
| DEAD | Кластер неработоспособен: ни один его хост не работает. | Составьте обращение в службу поддержки
|
| UNKNOWN | Состояние кластера неизвестно. | Составьте обращение в службу поддержки
|
Восстановление кластера в состоянии DEAD
Если кластер находится в состоянии DEAD, создайте запрос в техническую поддержку
При восстановлении будет создан отдельный кластер. Выберите доступную резервную копию или момент восстановления с учетом допустимой потери последних изменений: данные, записанные позже выбранного момента, в новый кластер не попадут. После восстановления переключите приложения на новый кластер.
Если причиной недоступности стала высокая нагрузка, восстановление из резервной копии само по себе ее не устранит. До возобновления полной нагрузки ограничьте интенсивность запросов, а после восстановления проанализируйте потребление ресурсов и оптимизируйте нагрузку, чтобы проблема не повторилась.
- Восстановите кластер из резервной копии.
- Обновите параметры подключения в приложениях и проверьте доступ к данным в новом кластере.
- Проанализируйте нагрузку на кластер, чтобы выявить ресурсоемкие запросы и сессии.
Статусы кластера
| Статус | Описание | Предлагаемые действия |
|---|---|---|
| CREATING | Идет подготовка к первому запуску | Подождите немного и приступайте к работе. Время создания кластера зависит от класса хостов. |
| RUNNING | Кластер работает в штатном режиме | Действий не требуется. |
| STOPPING | Кластер останавливается | Через некоторое время кластеру будет присвоен статус STOPPED, и он будет выведен из работы. Действий не требуется. |
| STOPPED | Кластер остановлен | Запустите кластер, чтобы вернуть его в работу. |
| STARTING | Остановленный ранее кластер запускается | Через некоторое время кластеру будет присвоен статус RUNNING. Подождите немного и приступайте к работе. |
| UPDATING | Обновляется конфигурация кластера | По завершении обновления кластеру будет присвоен статус, который был до обновления: RUNNING или STOPPED. |
| ERROR | Произошла ошибка при выполнении операции с кластером или во время окна технического обслуживания | Если кластер долго находится в этом статусе, обратитесь в службу поддержки |
| STATUS_UNKNOWN | Кластер не может определить свой статус | Если кластер долго находится в этом статусе, обратитесь в службу поддержки |