From d2b6e9fe705976a5149c3ed46dc9114ed19e034b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Tue, 3 Mar 2026 12:13:33 +0300 Subject: [PATCH 01/14] PostgreSQL --- ...ехнических_параметров_кластера_Cloud_PostgreSQL.md | 173 ++++++++++++++++ .../Подключение к сервису Cloud PostgreSQL.md | 83 ++++++++ ...ава_и_возможности_пользователя_PostgreSQL.md | 192 ++++++++++++++++++ .../Техническое описание PostgreSQL.md | 68 +++++++ 4 files changed, 516 insertions(+) create mode 100644 src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md create mode 100644 src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md create mode 100644 src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md create mode 100644 src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md diff --git a/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md b/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md new file mode 100644 index 0000000..2137a23 --- /dev/null +++ b/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md @@ -0,0 +1,173 @@ +## О разделе + +Данный раздел описывает технические параметры кластера PostgreSQL и порядок их первичной конфигурации. + +Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. + +Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. + +----- +## Выбор типа и размера дискового хранилища + +Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. + +_IOPS_ - количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. +### Доступные типы хранилищ: + +| Название | Лимит IOPS | Время отклика | +| -------------- | ------------------ | ------------- | +| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | +| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | +| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | +| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | + +**После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.** + +## Конфигурация вычислительных ресурсов + +В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. + +### Количество нод в кластере + +Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 1 до 5. + +### Процессор (CPU) + +Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. + +### Оперативная память (RAM) + +Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. + +## Интернет + +При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. + +**Доступные варианты скорости:** +- 50 Мбит/с +- 100 Мбит/с +- 200 Мбит/с +- 300 Мбит/с +- 400 Мбит/с +- 500 Мбит/с +- 1000 Мбит/с (1 Гбит/с) + +*Для выбранного канала предоставляется статический белый IP-адрес.* + +----- +## Параметры конфигурации IPSEC + +Ниже приведены основные параметры, задаваемые при развертывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению. + +### Данные о конфигурации IPSEC + +Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. +### Версия IKE (Internet Key Exchange) + +Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - _v1_ и _v2_. Разница заключается в том, что _IKE v1_ - более ранняя версия протокола. +_IKE v2_ - более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. + +### Метод аутентификации + +Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта: _PSK_ (Pre-Shared Key) и _Certificate_ (Сертификат). +- _PSK (Pre-Shared Key)_ - метод аутентификации, при котором используется заранее согласованный общий ключ. +- _Certificate_ - аутентификация с использованием цифровых сертификатов. + +------ +## Этап 1 - установка защищенного соединения + +### Hash + +Определяет алгоритм хэширования для защиты управляющего канала. Данный параметр заполняется вручную из выпадающего списка следующего содержания: +- _SHA 1_ - Формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. +- _SHA 2 - 256_ - Формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем. +- _SHA 2 - 384_ - Длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности. +- _SHA 2 - 512_ - Длина хэша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. + +### Шифрование + +Определяет алгоритм симметричного шифрования. Данный параметр заполняется вручную из выпадающего списка следующего содержания: +- _AES 128_ - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. +- _AES 256_ - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. +- _AES GCM 128_ / _AES GCM 192_ / _AES GCM 256_ - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа. + +### DH Group - группа Деффи Хеллмана + +Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. +Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: +- _group 2_ +- _group 5_ +- _group 14_ +- _group 15_ +- _group 16_ +- _group 19_ +- _group 20_ +- _group 21_ +### IKE Mode (только для IKEv1) + +Параметр IKE Mode определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. + +Доступны два режима: _Main_ и _Aggressive_. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. +- Main Mode - является стандартным и более безопасным режимом работы IKEv1. +- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных) + +### Время жизни + +Определяет, как долго действуют согласованные ключи в рамках первой фазы. +- Рекомендуемое значение: 86400 секунд (24 часа). +- После истечения времени выполняется повторная генерация ключей. + +------ +## Этап 2 - передача данных + +Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. +## Hash + +Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку, что данные не были изменены при передаче. Содержит такой же перечень элементов для выбора: +- _SHA 1_ +- _SHA 2 - 256_ +- _SHA 2 - 384_ +- _SHA 2 - 512_ + +## Шифрование + +Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: +- _AES 128_ +- _AES 256_ +- _AES GCM 128_ +- _AES GCM 192_ +- _AES GCM 256_ +### PFS + +_Enable perfect forward secrecy (PFS)_ - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе. +Данный параметр представлен в виде чекбокса. При его включении: + +- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman. +- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет. +- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1. + +### DH Group - группа Деффи Хеллмана + +Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: +- _group 2_ +- _group 5_ +- _group 14_ +- _group 15_ +- _group 16_ +- _group 19_ +- _group 20_ +- _group 21_ + +### Время жизни (в секундах) + +Определяет, как долго действуют согласованные ключи в рамках второй фазы. + +- Рекомендуемое значение: 3600 секунд (1 час). +- После истечения времени выполняется повторная генерация ключей. +### Префиксы локальной сети заказчика + +Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md b/src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md new file mode 100644 index 0000000..66ea1aa --- /dev/null +++ b/src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md @@ -0,0 +1,83 @@ +## Общая схема подключения + +Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется. + +Подключение к кластеру Cloud PostgreSQL осуществляется через прокси-сервер. +Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. В зависимости от выбранного порта прокси автоматически направляет трафик: +- на активный primary-узел - для операций чтения и записи +- на реплики - для операций только чтения + +Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер. + +------ +## Подключение к базе данных + +Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги. + +Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него. + +Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены. + +------ +## Доступные порты + +Для разных типов нагрузки используются разные порты: + +|Порт|Назначение| +|---|---| +|5432|Primary (чтение и запись)| +|15432|Replica (только чтение)| +|6432|Primary через PgBouncer (чтение и запись)| +|16432|Replica через PgBouncer (только чтение)| +### Особенности работы портов + +- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически. +- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin. +- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается. +### Рекомендации по выбору порта + +- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать порты PgBouncer (6432 или 16432). +- Для операций записи используйте master-порты (5432 или 6432). +- Для read-only запросов можно использовать replica-порты (15432 или 16432). + +------ +## Доступ к pgAdmin + +Для администрирования базы данных используется web-интерфейс pgAdmin. +Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса: + `10.X.X.4 .cloud-pg.dfcloud.ru` + +После добавления записи pgAdmin будет доступен по адресу: + `https://.cloud-pg.dfcloud.ru` + +Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису. + +### Важно + +- Подключение к базе данных возможно только через указанный прокси-IP. +- В интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных. +- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде. + +------ +## Примеры подключения к PostgreSQL + +Подключение к primary: + `psql -h 10.X.X.4 -p 5432 -U -d ` + +Подключение через PgBouncer: + `psql -h 10.X.X.4 -p 6432 -U -d ` +### Подключение через DBeaver / DataGrip + +При создании подключения укажите: +- Host: 10.X.X.4 +- Port: 5432 или 6432 +- Database: `` +- User / Password: согласно выданным доступам +- Тип подключения: PostgreSQL +### Пример строки подключения + +Primary: + `postgresql://:@10.X.X.4:5432/` + +Через PgBouncer: + `postgresql://:@10.X.X.4:6432/` diff --git a/src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md b/src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md new file mode 100644 index 0000000..3903fcb --- /dev/null +++ b/src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md @@ -0,0 +1,192 @@ +Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса Cloud PostgreSQL, а также перечень административных операций, доступных ему для самостоятельного выполнения. + +При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL. + +------ +## Общая информация о пользователе + +При инициализации сервиса автоматически создаётся пользователь: + +```nginx +client +``` + +Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий. + +------ +## Выданные права и ограничения + +Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных. +### Атрибуты роли + +Пользователь создаётся со следующими атрибутами: +- `CREATEDB` — разрешено создание и удаление баз данных; +- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их. + +Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует. +### Права на системную базу postgres: + +К стандартной базе данных `postgres` пользователю предоставлено только право подключения: +- `CONNECT` +Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются. +### Мониторинг и системные представления: + +Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены: +- членство в роли `pg_monitor`; +- право `SELECT` на системное представление: +```sql +pg_catalog.pg_stat_replication +``` + +Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно. + +------ +## Обязательная смена пароля + +После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля. +Смена пароля может быть выполнена: +- в открытом виде (с передачей нового значения пароля); +- с указанием заранее сгенерированного хэша. + +На сервере используется алгоритм шифрования паролей: + +``` +scram-sha-256 +``` + +При использовании SCRAM применяется следующий формат хэша: + +``` +$:$: +``` + +### Пример смены пароля в открытом виде + +```sql +ALTER USER client WITH PASSWORD 'new_strong_password'; +``` + +### Пример смены пароля с указанием хэша + +```sql +ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...'; +``` + +Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище. + +------ +## Создание новой базы данных + +Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL. +### Пример создания базы данных + +Для создания базы данных используется стандартная команда: + +```sql +CREATE DATABASE app_db; +``` + +Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает. +### Пример создания базы данных с указанием владельца + +```sql +CREATE DATABASE app_db OWNER client; +``` + +В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. + +------ +## Создание пользователей и ролей + +Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа. +### Создание роли без логина + +Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду: + +```sql +CREATE ROLE app_role; +``` +### Создание пользователя с паролем + +Для создания пользователя с паролем используется команда: + +```sql +CREATE USER app_user WITH PASSWORD 'app_password'; +``` + +После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. +### Назначение роли пользователю + +Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли: + +```sql +GRANT app_role TO app_user; +``` + +После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. +### Передача владельца базы данных + +Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды: + +```sql +ALTER DATABASE app_db OWNER TO app_user; +``` + +Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней. +### Управление правами доступа + +После создания пользователей и ролей необходимо назначить им соответствующие права доступа. +### Выдача прав на подключение к базе данных + +Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права: + +```sql +GRANT CONNECT ON DATABASE app_db TO app_user; +``` + +Эта команда разрешает пользователю `app_user` подключаться к базе данных `app_db`. + +### Права на схему public + +Для предоставления пользователю прав на использование схемы `public` можно выполнить следующую команду: + +```sql +GRANT USAGE, CREATE ON SCHEMA public TO app_user; +``` + +Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. +### Права на существующие таблицы + +Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду: + +```sql +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; +``` + +Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`. +### Права на будущие таблицы + +Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду: + +```sql +ALTER DEFAULT PRIVILEGES IN SCHEMA public +GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; +``` + +Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. + +------ +## Мониторинг репликации + +Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL. +### Просмотр состояния репликации + +Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению: + +``` SQL +SELECT * FROM pg_stat_replication; +``` +Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. +### Ограничения доступа + +Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md b/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md new file mode 100644 index 0000000..2e8cf67 --- /dev/null +++ b/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md @@ -0,0 +1,68 @@ +## Cloud PostgreSQL + +## О сервисе + +Cloud PostgreSQL - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. + +PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. + +В Cloud PostgreSQL все основные операции по управлению кластером выполняются автоматически. +Сервис самостоятельно: +- управляет ролями серверов базы данных (основной сервер и реплики) +- отслеживает состояние узлов +- автоматически переключает основной сервер при сбоях + +Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: +- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах +- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов +- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами + +Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера. +Для управления базами данных и пользователями в сервисе доступен web-интерфейс **pgAdmin**, который позволяет выполнять администрирование через браузер. + +--- +## Конфигурации кластера + +Сервис Cloud PostgreSQL поддерживает версии PostgreSQL с 13 по 17. + +Сервис предоставляется в виде кластера базы данных в конфигурации Primary–Standby, которая обеспечивает репликацию данных и повышенную отказоустойчивость. +В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: +- Primary (основной сервер) - обязательный узел, на котором выполняются операции записи данных +- Replica (реплики) - дополнительные узлы, которые создаются по желанию пользователя + +Количество реплик может составлять от 0 до 4. Реплики являются частью кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). В многонодовой конфигурации серверы кластера размещаются на разных хостах гипервизора, что повышает устойчивость сервиса к отказам. + +По умолчанию фиксация изменений выполняется в синхронном режиме репликации. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на реплике. +При наличии нескольких реплик синхронный режим применяется только к одной из них, для остальных используется асинхронный режим. + +При необходимости режим репликации может быть изменён на асинхронный. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой, без ожидания подтверждения от них. + +Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через предоставленные сервисом точки подключения. + +На каждом узле кластера установлен пулер соединений PgBouncer, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. + +--- +## Возможности сервиса + +Cloud PostgreSQL предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. + +Сервис обеспечивает: +- автоматическое управление кластером PostgreSQL +- высокую доступность за счёт репликации и автоматического переключения primary-узла +- единую точку подключения к базе данных через прокси +- автоматическое переключение при отказе узлов кластера без вмешательства пользователя +- web-доступ к управлению базами данных и пользователями через pgAdmin +- совместимость со стандартными клиентскими инструментами PostgreSQL +- возможность установки расширений PostgreSQL в базу данных + +--- +## Сценарии использования сервиса + +Cloud PostgreSQL подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. + +Сервис может применяться в следующих сценариях: +- размещение production-баз данных с высокими требованиями к доступности +- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных +- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры +- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover +- администрирование баз данных через web-интерфейс без прямого доступа к серверам кластера \ No newline at end of file From 2c30db48073c3ee80175eb5beff2b2922c83b4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 11 Mar 2026 16:17:54 +0300 Subject: [PATCH 02/14] =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B2=D0=B8=D1=81=20Po?= =?UTF-8?q?stgreSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/PostgreSQL/about.md | 87 ++++++++ src/PaaS/PostgreSQL/cluster_parameter.md | 205 ++++++++++++++++++ ...ие к сервису Cloud PostgreSQL.md => connection.md} | 67 +++--- ...сти_пользователя_PostgreSQL.md => user_capabilities.md} | 25 ++- ...ехнических_параметров_кластера_Cloud_PostgreSQL.md | 173 --------------- .../Техническое описание PostgreSQL.md | 68 ------ 6 files changed, 345 insertions(+), 280 deletions(-) create mode 100644 src/PaaS/PostgreSQL/about.md create mode 100644 src/PaaS/PostgreSQL/cluster_parameter.md rename src/PaaS/PostgreSQL/{Подключение к сервису Cloud PostgreSQL.md => connection.md} (68%) rename src/PaaS/PostgreSQL/{Права_и_возможности_пользователя_PostgreSQL.md => user_capabilities.md} (97%) delete mode 100644 src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md delete mode 100644 src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md diff --git a/src/PaaS/PostgreSQL/about.md b/src/PaaS/PostgreSQL/about.md new file mode 100644 index 0000000..b286657 --- /dev/null +++ b/src/PaaS/PostgreSQL/about.md @@ -0,0 +1,87 @@ +# Cloud PostgreSQL + +## Назначение сервиса + +**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. + +PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. + +В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически. + +Сервис самостоятельно: +- управляет ролями серверов базы данных (основной сервер и реплики); +- отслеживает состояние узлов; +- автоматически переключает основной сервер при сбоях. + +Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: +- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах; +- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов; +- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами. + +Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа. + +Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер. + +## Конфигурации кластера + +Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно. + +Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает: + +- синхронную репликацию данных; +- повышенную отказоустойчивость. + +В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: + +- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных; +- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя. + +Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). + +В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования. + +## Режимы репликации + +По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик. + +Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения. + +При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой. + +## Доступ к серверам и оптимизация соединений + +Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом. + +На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. + +::: warning Примечание + +Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. + +::: + +## Возможности сервиса + +**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. + +Сервис обеспечивает: + +- автоматическое управление кластером PostgreSQL; +- высокую доступность за счёт репликации и автоматического переключения primary-узла; +- единую точку подключения к базе данных через прокси; +- автоматическое переключение при отказе узлов кластера без вмешательства пользователя; +- web-доступ к управлению базами данных и пользователями через pgAdmin; +- совместимость со стандартными клиентскими инструментами PostgreSQL; +- возможность установки расширений PostgreSQL в базу данных. + +## Сценарии использования сервиса + +**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. + +Сервис может применяться в следующих сценариях: + +- размещение production-баз данных с высокими требованиями к доступности; +- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных; +- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры; +- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; +- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. diff --git a/src/PaaS/PostgreSQL/cluster_parameter.md b/src/PaaS/PostgreSQL/cluster_parameter.md new file mode 100644 index 0000000..bf27193 --- /dev/null +++ b/src/PaaS/PostgreSQL/cluster_parameter.md @@ -0,0 +1,205 @@ +# О разделе + +Данный раздел содержит описание технических параметров кластера PostgreSQL и порядок их первичной конфигурации. + +Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. + +Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. + +## Выбор типа и размера дискового хранилища + +Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. + +**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. + +## Доступные типы хранилищ: + +| Название | Лимит IOPS | Время отклика | +| ---------------| ------------------ | ------------- | +| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | +| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | +| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | +| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | + +::: warning Примечание + +После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ. + +::: + +## Конфигурация вычислительных ресурсов + +В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. + +### Количество нод в кластере + +Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения. + +Количество нод выбирается в диапазоне **от 1 до 5**. + +### Процессор (CPU) + +Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет: + +- обрабатывать запросы; +- выполнять сложные операции (сортировки, объединения таблиц); +- обслуживать одновременные подключения. + +Доступный диапазон: **от 2 до 24 vCPU** на ноду. + +### Оперативная память (RAM) + +Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. + +Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду. + +### Доступ в интернет + +При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. + +**Доступные варианты скорости:** +- 50 Мбит/с; +- 100 Мбит/с; +- 200 Мбит/с; +- 300 Мбит/с; +- 400 Мбит/с; +- 500 Мбит/с; +- 1000 Мбит/с (1 Гбит/с). + +::: warning Примечание + +Для выбранного канала предоставляется статический белый IP-адрес. + +::: + +## Параметры конфигурации IPSEC + +Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению. + +### Данные о конфигурации IPSEC + +Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. + +### Версия IKE (Internet Key Exchange) + +Версия IKE выбирается из выпадающего списка, который содержит два значения: + +- **IKE v1** — более ранняя версия протокола; +- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. + +Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. + +### Метод аутентификации + +Метод аутентификации выбирается из выпадающего списка, который содержит два варианта: + +- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа; +- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов. + +## Этап 1 - установка защищенного соединения + +На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков. + +### Алгоритм хэширования + +Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка: + +- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. +- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью. +- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности. +- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. + +### Шифрование (Hash) + +Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка: + +AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. +AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. +AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа. + +### DH Group (группа Диффи — Хеллмана) + +Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения. + +Параметр заполняется вручную из выпадающего списка: + +group 2; +group 5; +group 14; +group 15; +group 16; +group 19; +group 20; +group 21. + +### IKE Mode (только для IKEv1) + +Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. + +Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. + +- **Main Mode** — стандартный и более безопасный режим работы IKEv1; +- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных. + +### Время жизни (Lifetime) + +Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей. + +## Этап 2 - передача данных + +Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. + +### Алгоритм хэширование (Hash) + +Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы: + +- SHA1; +- SHA2-256; +- SHA2-384; +- SHA2-512. + +## Шифрование + +Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: + +- AES 128; +- AES 256; +- AES GCM 128; +- AES GCM 192; +- AES GCM 256. + +### PFS + +**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе. + +Данный параметр представлен в виде чекбокса. При его включении: + +- на этапе 2 выполняется дополнительный обмен ключами DH; +- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; +- ключи шифрования пользовательского трафика не зависят от ключей этапа 1. + +### DH Group (группа Диффи — Хеллмана) + +Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: + +- group 2; +- group 5; +- group 14; +- group 15; +- group 16; +- group 19; +- group 20; +- group 21. + +### Время жизни (Lifetime) + +Определяет, как долго действуют согласованные ключи в рамках второй фазы. + +- рекомендуемое значение: 3600 секунд (1 час); +- после истечения времени выполняется повторная генерация ключей. + +### Префиксы локальной сети заказчика + +Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md b/src/PaaS/PostgreSQL/connection.md similarity index 68% rename from src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md rename to src/PaaS/PostgreSQL/connection.md index 66ea1aa..d561775 100644 --- a/src/PaaS/PostgreSQL/Подключение к сервису Cloud PostgreSQL.md +++ b/src/PaaS/PostgreSQL/connection.md @@ -1,15 +1,15 @@ -## Общая схема подключения +# Общая схема подключения Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется. -Подключение к кластеру Cloud PostgreSQL осуществляется через прокси-сервер. -Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. В зависимости от выбранного порта прокси автоматически направляет трафик: +Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. + +В зависимости от выбранного порта прокси автоматически направляет трафик: - на активный primary-узел - для операций чтения и записи - на реплики - для операций только чтения Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер. ------- ## Подключение к базе данных Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги. @@ -18,66 +18,69 @@ Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены. ------- ## Доступные порты Для разных типов нагрузки используются разные порты: -|Порт|Назначение| -|---|---| -|5432|Primary (чтение и запись)| -|15432|Replica (только чтение)| -|6432|Primary через PgBouncer (чтение и запись)| -|16432|Replica через PgBouncer (только чтение)| +|Порт |Назначение | +|------|-----------------------------------------| +|5432 |Primary (чтение и запись) | +|15432 |Replica (только чтение) | +|6432 |Primary через PgBouncer (чтение и запись)| +|16432 |Replica через PgBouncer (только чтение) | + ### Особенности работы портов -- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически. -- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin. +- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически; +- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin; - Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается. + ### Рекомендации по выбору порта -- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать порты PgBouncer (6432 или 16432). -- Для операций записи используйте master-порты (5432 или 6432). -- Для read-only запросов можно использовать replica-порты (15432 или 16432). +- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**; +- Для операций записи используйте **master-порты (5432 или 6432)**; +- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**. ------- ## Доступ к pgAdmin Для администрирования базы данных используется web-интерфейс pgAdmin. Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса: - `10.X.X.4 .cloud-pg.dfcloud.ru` +`10.X.X.4 .cloud-pg.dfcloud.ru` После добавления записи pgAdmin будет доступен по адресу: - `https://.cloud-pg.dfcloud.ru` +`https://.cloud-pg.dfcloud.ru` Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису. -### Важно +::: warning Важно -- Подключение к базе данных возможно только через указанный прокси-IP. -- В интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных. +- подключение к базе данных возможно только через указанный прокси-IP; +- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных; - pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде. ------- +::: + ## Примеры подключения к PostgreSQL Подключение к primary: - `psql -h 10.X.X.4 -p 5432 -U -d ` +`psql -h 10.X.X.4 -p 5432 -U -d ` Подключение через PgBouncer: - `psql -h 10.X.X.4 -p 6432 -U -d ` +`psql -h 10.X.X.4 -p 6432 -U -d ` + ### Подключение через DBeaver / DataGrip При создании подключения укажите: -- Host: 10.X.X.4 -- Port: 5432 или 6432 -- Database: `` -- User / Password: согласно выданным доступам -- Тип подключения: PostgreSQL +- Host: 10.X.X.4; +- Port: 5432 или 6432; +- Database: ``; +- User / Password: согласно выданным доступам; +- Тип подключения: PostgreSQL. + ### Пример строки подключения Primary: - `postgresql://:@10.X.X.4:5432/` +`postgresql://:@10.X.X.4:5432/` Через PgBouncer: - `postgresql://:@10.X.X.4:6432/` +`postgresql://:@10.X.X.4:6432/` diff --git a/src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md b/src/PaaS/PostgreSQL/user_capabilities.md similarity index 97% rename from src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md rename to src/PaaS/PostgreSQL/user_capabilities.md index 3903fcb..dbe1ea2 100644 --- a/src/PaaS/PostgreSQL/Права_и_возможности_пользователя_PostgreSQL.md +++ b/src/PaaS/PostgreSQL/user_capabilities.md @@ -1,8 +1,9 @@ -Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса Cloud PostgreSQL, а также перечень административных операций, доступных ему для самостоятельного выполнения. +# Создание сервиса Cloud PostgreSQL + +Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQ**L**, а также перечень административных операций, доступных ему для самостоятельного выполнения. При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL. ------- ## Общая информация о пользователе При инициализации сервиса автоматически создаётся пользователь: @@ -13,10 +14,10 @@ client Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий. ------- ## Выданные права и ограничения Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных. + ### Атрибуты роли Пользователь создаётся со следующими атрибутами: @@ -24,11 +25,13 @@ client - `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их. Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует. + ### Права на системную базу postgres: К стандартной базе данных `postgres` пользователю предоставлено только право подключения: - `CONNECT` Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются. + ### Мониторинг и системные представления: Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены: @@ -40,7 +43,6 @@ pg_catalog.pg_stat_replication Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно. ------- ## Обязательная смена пароля После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля. @@ -74,10 +76,10 @@ ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...'; Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище. ------- ## Создание новой базы данных Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL. + ### Пример создания базы данных Для создания базы данных используется стандартная команда: @@ -87,6 +89,7 @@ CREATE DATABASE app_db; ``` Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает. + ### Пример создания базы данных с указанием владельца ```sql @@ -95,10 +98,10 @@ CREATE DATABASE app_db OWNER client; В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. ------- ## Создание пользователей и ролей Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа. + ### Создание роли без логина Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду: @@ -106,6 +109,7 @@ CREATE DATABASE app_db OWNER client; ```sql CREATE ROLE app_role; ``` + ### Создание пользователя с паролем Для создания пользователя с паролем используется команда: @@ -115,6 +119,7 @@ CREATE USER app_user WITH PASSWORD 'app_password'; ``` После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. + ### Назначение роли пользователю Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли: @@ -124,6 +129,7 @@ GRANT app_role TO app_user; ``` После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. + ### Передача владельца базы данных Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды: @@ -133,9 +139,11 @@ ALTER DATABASE app_db OWNER TO app_user; ``` Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней. + ### Управление правами доступа После создания пользователей и ролей необходимо назначить им соответствующие права доступа. + ### Выдача прав на подключение к базе данных Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права: @@ -155,6 +163,7 @@ GRANT USAGE, CREATE ON SCHEMA public TO app_user; ``` Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. + ### Права на существующие таблицы Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду: @@ -164,6 +173,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; ``` Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`. + ### Права на будущие таблицы Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду: @@ -175,10 +185,10 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. ------- ## Мониторинг репликации Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL. + ### Просмотр состояния репликации Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению: @@ -187,6 +197,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; SELECT * FROM pg_stat_replication; ``` Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. + ### Ограничения доступа Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md b/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md deleted file mode 100644 index 2137a23..0000000 --- a/src/PaaS/PostgreSQL/Описание_технических_параметров_кластера_Cloud_PostgreSQL.md +++ /dev/null @@ -1,173 +0,0 @@ -## О разделе - -Данный раздел описывает технические параметры кластера PostgreSQL и порядок их первичной конфигурации. - -Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. - -Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. - ------ -## Выбор типа и размера дискового хранилища - -Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. - -_IOPS_ - количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. -### Доступные типы хранилищ: - -| Название | Лимит IOPS | Время отклика | -| -------------- | ------------------ | ------------- | -| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | -| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | -| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | -| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | - -**После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.** - -## Конфигурация вычислительных ресурсов - -В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. - -### Количество нод в кластере - -Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 1 до 5. - -### Процессор (CPU) - -Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. - -### Оперативная память (RAM) - -Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. - -## Интернет - -При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. - -**Доступные варианты скорости:** -- 50 Мбит/с -- 100 Мбит/с -- 200 Мбит/с -- 300 Мбит/с -- 400 Мбит/с -- 500 Мбит/с -- 1000 Мбит/с (1 Гбит/с) - -*Для выбранного канала предоставляется статический белый IP-адрес.* - ------ -## Параметры конфигурации IPSEC - -Ниже приведены основные параметры, задаваемые при развертывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению. - -### Данные о конфигурации IPSEC - -Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. -### Версия IKE (Internet Key Exchange) - -Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - _v1_ и _v2_. Разница заключается в том, что _IKE v1_ - более ранняя версия протокола. -_IKE v2_ - более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. - -### Метод аутентификации - -Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта: _PSK_ (Pre-Shared Key) и _Certificate_ (Сертификат). -- _PSK (Pre-Shared Key)_ - метод аутентификации, при котором используется заранее согласованный общий ключ. -- _Certificate_ - аутентификация с использованием цифровых сертификатов. - ------- -## Этап 1 - установка защищенного соединения - -### Hash - -Определяет алгоритм хэширования для защиты управляющего канала. Данный параметр заполняется вручную из выпадающего списка следующего содержания: -- _SHA 1_ - Формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. -- _SHA 2 - 256_ - Формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем. -- _SHA 2 - 384_ - Длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности. -- _SHA 2 - 512_ - Длина хэша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. - -### Шифрование - -Определяет алгоритм симметричного шифрования. Данный параметр заполняется вручную из выпадающего списка следующего содержания: -- _AES 128_ - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. -- _AES 256_ - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. -- _AES GCM 128_ / _AES GCM 192_ / _AES GCM 256_ - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа. - -### DH Group - группа Деффи Хеллмана - -Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. -Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения. - -Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: -- _group 2_ -- _group 5_ -- _group 14_ -- _group 15_ -- _group 16_ -- _group 19_ -- _group 20_ -- _group 21_ -### IKE Mode (только для IKEv1) - -Параметр IKE Mode определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. - -Доступны два режима: _Main_ и _Aggressive_. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. -- Main Mode - является стандартным и более безопасным режимом работы IKEv1. -- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных) - -### Время жизни - -Определяет, как долго действуют согласованные ключи в рамках первой фазы. -- Рекомендуемое значение: 86400 секунд (24 часа). -- После истечения времени выполняется повторная генерация ключей. - ------- -## Этап 2 - передача данных - -Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. -## Hash - -Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку, что данные не были изменены при передаче. Содержит такой же перечень элементов для выбора: -- _SHA 1_ -- _SHA 2 - 256_ -- _SHA 2 - 384_ -- _SHA 2 - 512_ - -## Шифрование - -Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: -- _AES 128_ -- _AES 256_ -- _AES GCM 128_ -- _AES GCM 192_ -- _AES GCM 256_ -### PFS - -_Enable perfect forward secrecy (PFS)_ - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе. -Данный параметр представлен в виде чекбокса. При его включении: - -- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman. -- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет. -- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1. - -### DH Group - группа Деффи Хеллмана - -Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. - -Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: -- _group 2_ -- _group 5_ -- _group 14_ -- _group 15_ -- _group 16_ -- _group 19_ -- _group 20_ -- _group 21_ - -### Время жизни (в секундах) - -Определяет, как долго действуют согласованные ключи в рамках второй фазы. - -- Рекомендуемое значение: 3600 секунд (1 час). -- После истечения времени выполняется повторная генерация ключей. -### Префиксы локальной сети заказчика - -Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md b/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md deleted file mode 100644 index 2e8cf67..0000000 --- a/src/PaaS/PostgreSQL/Техническое описание PostgreSQL.md +++ /dev/null @@ -1,68 +0,0 @@ -## Cloud PostgreSQL - -## О сервисе - -Cloud PostgreSQL - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. - -PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. - -В Cloud PostgreSQL все основные операции по управлению кластером выполняются автоматически. -Сервис самостоятельно: -- управляет ролями серверов базы данных (основной сервер и реплики) -- отслеживает состояние узлов -- автоматически переключает основной сервер при сбоях - -Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: -- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах -- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов -- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами - -Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера. -Для управления базами данных и пользователями в сервисе доступен web-интерфейс **pgAdmin**, который позволяет выполнять администрирование через браузер. - ---- -## Конфигурации кластера - -Сервис Cloud PostgreSQL поддерживает версии PostgreSQL с 13 по 17. - -Сервис предоставляется в виде кластера базы данных в конфигурации Primary–Standby, которая обеспечивает репликацию данных и повышенную отказоустойчивость. -В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: -- Primary (основной сервер) - обязательный узел, на котором выполняются операции записи данных -- Replica (реплики) - дополнительные узлы, которые создаются по желанию пользователя - -Количество реплик может составлять от 0 до 4. Реплики являются частью кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). В многонодовой конфигурации серверы кластера размещаются на разных хостах гипервизора, что повышает устойчивость сервиса к отказам. - -По умолчанию фиксация изменений выполняется в синхронном режиме репликации. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на реплике. -При наличии нескольких реплик синхронный режим применяется только к одной из них, для остальных используется асинхронный режим. - -При необходимости режим репликации может быть изменён на асинхронный. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой, без ожидания подтверждения от них. - -Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через предоставленные сервисом точки подключения. - -На каждом узле кластера установлен пулер соединений PgBouncer, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. - ---- -## Возможности сервиса - -Cloud PostgreSQL предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. - -Сервис обеспечивает: -- автоматическое управление кластером PostgreSQL -- высокую доступность за счёт репликации и автоматического переключения primary-узла -- единую точку подключения к базе данных через прокси -- автоматическое переключение при отказе узлов кластера без вмешательства пользователя -- web-доступ к управлению базами данных и пользователями через pgAdmin -- совместимость со стандартными клиентскими инструментами PostgreSQL -- возможность установки расширений PostgreSQL в базу данных - ---- -## Сценарии использования сервиса - -Cloud PostgreSQL подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. - -Сервис может применяться в следующих сценариях: -- размещение production-баз данных с высокими требованиями к доступности -- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных -- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры -- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover -- администрирование баз данных через web-интерфейс без прямого доступа к серверам кластера \ No newline at end of file From 97bfe3d5b4b18dd57c2b74958bb7d3af426c48d8 Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Thu, 12 Mar 2026 15:16:55 +0300 Subject: [PATCH 03/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B5=20=D1=81=20PgAdmin,=20=D0=B0=20=D1=82=D0=B0=D0=BA?= =?UTF-8?q?=D0=B6=D0=B5=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D1=80=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- beecloud-docs | 1 + .../Инструкция по работе с Grafana.md | 93 +++++++++++++++++++ .../Инструкция по работе с PgAdmin.md | 54 +++++++++++ 3 files changed, 148 insertions(+) create mode 160000 beecloud-docs create mode 100644 src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md create mode 100644 src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md diff --git a/beecloud-docs b/beecloud-docs new file mode 160000 index 0000000..df88416 --- /dev/null +++ b/beecloud-docs @@ -0,0 +1 @@ +Subproject commit df88416247529a85beeef673abd5e6722c4037e4 diff --git a/src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md b/src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md new file mode 100644 index 0000000..5457d7c --- /dev/null +++ b/src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md @@ -0,0 +1,93 @@ +Для того, чтобы получить доступ к метрикам кластера, предварительно необходимо запросить доступы. Когда доступы будут получены, появится возможность перейти в систему мониторинга. +Ссылка для входа - https://metrics.dfcloud.ru. + +При переходе по ссылке откроется главная страница Grafana. Для того чтобы найти нужные метрики, необходимо проделать следующий путь: +1. Нажать на кнопку "Dashboards", которая располагается в левом боковом меню. +2. В открывшемся списке всех имеющихся дашбордов необходимо выбрать папку "Cloud PostgreSQL". +3. Внутри будет элемент **Cloud PostgreSQL** - это именно тот дашборд, который нам нужен. +Перейдя на дашборд Cloud PostgreSQL, открываются все метрики кластера. + +В верхней части дашборда расположены все селекторы, с помощью которых можно управлять отображаемыми данными: +- **InstallationID** - выбор одного из кластеров. Если у клиента несколько кластеров PostgreSQL, он может выбирать тот кластер, по которому хочет посмотреть информацию. +- **Cluster node name** - выбор конкретной ноды кластера. Значения графиков меняются в зависимости от того, какой хост выбран. Этот селектор влияет на все графики, кроме блока Patroni. +- **Database** - выбор базы данных, по которой можно смотреть показатели метрик. +- **Lock table** - данный селектор применим не для всех графиков. С его помощью можно выбирать, какой тип блокировки использовать для отображения информации. +## Блок метрик PostgreSQL + +Данный блок отображает ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL. + +| Наименование метрики | Описание метрики | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Version** | Показывает текущую версию PostgreSQL, установленную на кластере. | +| **Current fetch data** | Объем данных, извлеченных из базы за текущий период (операции чтения). | +| **Current insert data** | Объем данных, вставленных в базу (операции записи новых данных). | +| **Current update data** | Объем данных, обновленных в базе. | +| **Seq Page Cost** | Стоимость последовательного чтения страницы данных. Влияет на выбор плана запроса: чем выше значение, тем реже оптимизатор будет выбирать последовательное сканирование таблиц. | +| **Random Page Cost** | Стоимость чтения случайной страницы данных. Низкое значение говорит о том, что в системе используются быстрые диски, и оптимизатор будет чаще выбирать доступ по индексам. | +| **Max Connections** | Максимальное количество одновременных подключений к базе данных, разрешенное на сервере. | +| **Shared Buffers** | Объем оперативной памяти, выделенный под кэш данных PostgreSQL. Здесь хранятся часто используемые данные для ускорения доступа к ним. | +| **Effective Cache** | Предполагаемый размер системного кэша файлов. Используется оптимизатором для оценки вероятности нахождения данных в кэше операционной системы. | +| **Maintenance Work Mem** | Объем памяти для выполнения операций обслуживания. | +| **Work Mem** | Объем памяти, выделяемый для внутренних сортировок и хеш-таблиц при выполнении запросов (на каждую операцию). | +| **Max WAL Size** | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки (checkpoint). | +| **Max Worker Processes** | Максимальное количество фоновых процессов, которые могут быть запущены в системе. | +| **Max Parallel Workers** | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. | +## Блок метрик Database Stats + +Данный блок метрик отражает текущую нагрузку и состояние баз данных в кластере PostgreSQL. Эти метрики позволяют оценить, насколько эффективно работает база данных, отследить скачки нагрузки и своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений. + +| Наименование метрики | Описание метрики | +| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Average CPU Usage** | Показывает время, затраченное на выполнение пользовательских и системных задач, а также, насколько интенсивно используются вычислительные ресурсы сервера базы данных. | +| **Average Memory Usage** | Средний объем оперативной памяти, используемой процессами PostgreSQL за 5-минутные интервалы. Показывает, сколько памяти потребляет база данных в процессе работы. | +| **Open File Descriptors** | Количество открытых файловых дескрипторов процессами PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) и минимальное (Min) значение за интервал. | +| **Active sessions** | Показывает, сколько в данный момент выполняется запросов к PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) значение. | +| **Transcations** | Количество транзакций в базах данных кластера. Метрика разделена на два типа операций: commits (успешно завершенные транзакции) и rollbacks (откаченные транзакции). | +| **Update data** | Объем данных, обновленных в базах данных кластера. Показывает, сколько данных было изменено в результате выполнения операций UPDATE. | +| **Fetch data (SELECT)** | Объем данных, извлеченных из базы с помощью запросов SELECT. Показывает, сколько данных было считано из базы в результате операций чтения. | +| **Insert data** | Объем данных, вставленных в базы данных кластера. Показывает, сколько данных было добавлено в результате выполнения операций INSERT. | +| **Lock tables** | Количество блокировок таблиц в базах данных кластера. Показывает, сколько раз таблицы были заблокированы для выполнения операций.
AccessShareLock - это блокировка, которая возникает, когда кто-то читает данные из таблицы (делает SELECT). Данная блокировка не мешает операциям чтения, но не дает удалить в этот момент таблицу или изменить ее структуру. | +| **Return data** | Объем данных, возвращаемых клиенту в результате выполнения запросов. Показывает, сколько данных было отправлено обратно клиенту после обработки запросов в базе. | +| **Idle sessions** | Количество бездействующих сессий подключения к базе данных. Показывает, сколько открытых подключений в данный момент не выполняют никаких запросов и просто ждут. | +| **Delete data** | Объем данных, удаленных из базы данных в результате выполнения операций DELETE. Показывает, сколько данных было удалено из таблиц. | +| **Cache Hit Rate** | Показывает процент запросов к данным, которые были удовлетворены из кэша (оперативной памяти), без обращения к диску. Показывает, насколько эффективно используется кэш PostgreSQL. | +| **Buffers (bgwriter)** | Метрика, показывающая активность фонового процесса записи, который занимается синхронизацией данных из оперативной памяти на диск. | +| **Conflicts/Deadlocks** | Метрика, отслеживающая две проблемы при работе с базой данных: конфликты восстановления и взаимоблокировки. | +| **Temp File (Bytes)** | Объем данных, записанных во временные файлы при выполнении запросов в базах данных. PostgreSQL создает временные файлы на диске, когда для выполнения запроса не хватает оперативной памяти. | +| **Checkpoint Stats** | Метрика, показывающая время, затрачиваемое на выполнение checkpoints в PostgreSQL, где:
- write_time - время, затраченное на запись данных на диск во время checkpoint (сколько миллисекунд ушло на запись файлов).
- sync_time - время, затраченное на синхронизацию файлов с диском (чтобы данные гарантированно сохранились). | + +## Блок метрик Patroni + +Данный блок метрик отображает состояние и конфигурацию кластера PostgreSQL под управлением Patroni. Эти метрики позволяют контролировать отказоустойчивость кластера, отслеживать переключения мастера и убеждаться, что репликация работает штатно. + +| Наименование метрики | Описание метрики | +| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Patroni Leader** | Метрика, которая показывает, какая нода в кластере PostgreSQL в данный момент является master-сервером, принимающим запросы на запись. | +| **Patroni Replica** | Метрика, которая показывает, какие узлы кластера PostgreSQL в данный момент выполняют роль реплики. | +| **Sync Standby** | Метрика, которая показывает, какая из реплик в кластере PostgreSQL назначена синхронной. | +| **PostgreSQL WAL Replay** | Метрика, которая показывает, включена ли на узлах кластера синхронизация данных через WAL. | +| **PostgreSQL Pending Restart** | Метрика, которая показывает, требуется ли перезагрузка PostgreSQL на узлах кластера после изменения конфигурационных параметров. | +| **Patroni Primary Node** | Метрика, которая показывает, какой узел в кластере PostgreSQL в данный момент является основным и принимает запросы на запись. | +| **Patroni Secondary Nodes** | Метрика, которая показывает, какие узлы кластера PostgreSQL в определенные моменты времени выполняли роль реплик. | +| **Replicas Received WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), полученных каждой репликой кластера. | +| **Primary WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), на основном сервере кластера PostgreSQL. | +| **Replicas Replayed WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), которые были не просто получены, а уже применены на репликах кластера. | +| **WAL Replay Paused** | Метрика, которая отслеживает, не приостановлен ли процесс применения WAL-журналов на узлах кластера. Если передача или применение WAL-файлов останавливается, на графике происходит скачок. | + +## Блок метрик Hosts + +Блок Hosts управляется селектором **Cluster node name**. Данный блок метрик отображает состояние и ресурсы серверов, на которых развернут кластер PostgreSQL. Эти метрики позволяют оценить, хватает ли серверу ресурсов для текущей нагрузки, и своевременно обнаружить проблемы с производительностью или нехваткой места на дисках. + +| Наименование метрики | Описание метрики | +| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **CPU Busy** | Метрика, показывающая общую загруженность всех процессорных ядер на сервере, где работает PostgreSQL. | +| **RAM Used** | Метрика, показывающая процент оперативной памяти, который занят на сервере всеми процессами. | +| **CPU Cores** | Метрика, показывающая общее количество процессорных ядер, доступных на сервере, где работает PostgreSQL. | +| **RAM Total** | Метрика, показывающая общий объем оперативной памяти, установленный на сервере. | +| **DB Disk Total** | Метрика, показывающая общий объем дискового пространства, выделенного для хранения данных базы данных PostgreSQL на сервере. | +| **CPU Basic** | Метрика, которая показывает детальную разбивку загрузки процессора по типам выполняемых задач. Она позволяет увидеть, на что именно тратится процессорное время на сервере. | +| **Memory Basic** | Метрика, которая показывает детальную разбивку использования оперативной памяти на сервере, а также информацию о SWAP. | +| **Disk IOps** | Метрика, показывающая количество операций чтения и записи, выполняемых на диске сервера в секунду. | +| **Disk Space Used Basic** | Метрика, показывающая процент занятого дискового пространства на всех подключенных файловых системах сервера. | +| **Disk R/W Data** | Показывает объем данных в байтах, читаемых с диска и записываемых на диск в секунду. | +| **Filesystem space available** | Метрика, показывающая объем свободного дискового пространства на файловой системе сервера. | diff --git a/src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md b/src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md new file mode 100644 index 0000000..e0d67f8 --- /dev/null +++ b/src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md @@ -0,0 +1,54 @@ +После предоставления доступа к сервису Cloud PostgreSQL пользователь получает возможность управлять базами данных через веб-интерфейс pgAdmin. Ниже приведена инструкция по входу в систему и выполнению основных операций. +## Вход в pgAdmin + +1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к pgAdmin. +2. На странице авторизации введите **логин и пароль от pgAdmin**. +> Учетные данные направляются пользователю на электронную почту при предоставлении доступа. +3. После входа в систему в левой панели навигации откройте раздел **Servers**. +4. Выберите предварительно настроенный сервер с названием **PostgreSQL**. +5. В открывшемся окне введите пароль. +> Важно: на данном этапе необходимо указать **пароль учетной записи базы данных**, а не пароль от pgAdmin. +6. Нажмите **ОК**. +7. После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL. +## Просмотр реплик и параметров конфигурации + +pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. + +Чтобы просмотреть список реплик: +- Откройте раздел **Replica nodes** в панели навигации. + +Чтобы проверить состояние репликации: +1. Выберите нужную реплику в разделе **Replica nodes**. +2. Перейдите в подраздел **Replication**. +3. Откройте пункт **Replication stats**. +4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации. +> Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера. + +Так же, есть возможность посмотреть **параметры конфигурации PostgreSQL**, применённых к конкретной реплике. Для этого необходимо перейти в раздел **Конфигурация**, который расположен в блоке **Replica nodes**. + +Во вкладке отображается таблица со следующими колонками: +- **Имя** - наименование конфигурационного параметра; +- **Категория** - логическая группа параметра; +- **Значение** - текущее установленное значение; +- **Единицы** - единицы измерения (если применимо); +- **Описание** - краткое пояснение назначения параметра. +> Вкладка **Конфигурация** предназначена для просмотра текущих настроек реплики. +## Просмотр и управление базами данных + +Для просмотра существующих баз данных: +- Откройте раздел **Базы данных** в панели навигации. В этом разделе отображается перечень всех созданных баз. + +Для создания новой базы данных: +1. Щелкните правой кнопкой мыши по разделу **Базы данных**. +2. В контекстном меню выберите **Создать**, затем - **База данных**. +3. Заполните обязательные поля в открывшейся форме. +4. Нажмите **Сохранить**. +## Роли входа / группы + +В разделе **Роли входа/группы** отображается список пользователей (ролей), имеющих доступ к базам данных кластера. + +Для создания новой роли: +1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**. +2. Выберите **Создать**, затем - **Роль входа/группы**. +3. Заполните необходимые параметры в форме создания роли. +4. Нажмите **Сохранить**. \ No newline at end of file From e1b0c5d60ec8996152fcf20080a18d5cf5d006da Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Fri, 13 Mar 2026 11:05:58 +0300 Subject: [PATCH 04/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B2=D1=83=D1=85=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D1=8B=D1=85=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=B2,=20=D0=BC=D0=B5=D1=82=D1=80=D0=B8?= =?UTF-8?q?=D0=BA=D0=B8=20+=20pgadmin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...трукция по работе с Grafana.md => grafana.md} | 13 ++++--- ...трукция по работе с PgAdmin.md => pgadmin.md} | 36 ++++++++++--------- 2 files changed, 29 insertions(+), 20 deletions(-) rename src/PaaS/PostgreSQL/{Инструкция по работе с Grafana.md => grafana.md} (99%) rename src/PaaS/PostgreSQL/{Инструкция по работе с PgAdmin.md => pgadmin.md} (87%) diff --git a/src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md b/src/PaaS/PostgreSQL/grafana.md similarity index 99% rename from src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md rename to src/PaaS/PostgreSQL/grafana.md index 5457d7c..6717787 100644 --- a/src/PaaS/PostgreSQL/Инструкция по работе с Grafana.md +++ b/src/PaaS/PostgreSQL/grafana.md @@ -1,3 +1,6 @@ + +# Метрики +## Инструкция по подключению к Grafana. Для того, чтобы получить доступ к метрикам кластера, предварительно необходимо запросить доступы. Когда доступы будут получены, появится возможность перейти в систему мониторинга. Ссылка для входа - https://metrics.dfcloud.ru. @@ -8,10 +11,11 @@ Перейдя на дашборд Cloud PostgreSQL, открываются все метрики кластера. В верхней части дашборда расположены все селекторы, с помощью которых можно управлять отображаемыми данными: -- **InstallationID** - выбор одного из кластеров. Если у клиента несколько кластеров PostgreSQL, он может выбирать тот кластер, по которому хочет посмотреть информацию. -- **Cluster node name** - выбор конкретной ноды кластера. Значения графиков меняются в зависимости от того, какой хост выбран. Этот селектор влияет на все графики, кроме блока Patroni. -- **Database** - выбор базы данных, по которой можно смотреть показатели метрик. -- **Lock table** - данный селектор применим не для всех графиков. С его помощью можно выбирать, какой тип блокировки использовать для отображения информации. +- **InstallationID** - выбор одного из кластеров. Если у клиента несколько кластеров PostgreSQL, он может выбирать тот кластер, по которому хочет посмотреть информацию; +- **Cluster node name** - выбор конкретной ноды кластера. Значения графиков меняются в зависимости от того, какой хост выбран. Этот селектор влияет на все графики, кроме блока Patroni; +- **Database** - выбор базы данных, по которой можно смотреть показатели метрик; +- **Lock table** - данный селектор применим не для всех графиков. С его помощью можно выбирать, какой тип блокировки использовать для отображения информации; + ## Блок метрик PostgreSQL Данный блок отображает ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL. @@ -32,6 +36,7 @@ | **Max WAL Size** | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки (checkpoint). | | **Max Worker Processes** | Максимальное количество фоновых процессов, которые могут быть запущены в системе. | | **Max Parallel Workers** | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. | + ## Блок метрик Database Stats Данный блок метрик отражает текущую нагрузку и состояние баз данных в кластере PostgreSQL. Эти метрики позволяют оценить, насколько эффективно работает база данных, отследить скачки нагрузки и своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений. diff --git a/src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md b/src/PaaS/PostgreSQL/pgadmin.md similarity index 87% rename from src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md rename to src/PaaS/PostgreSQL/pgadmin.md index e0d67f8..7133416 100644 --- a/src/PaaS/PostgreSQL/Инструкция по работе с PgAdmin.md +++ b/src/PaaS/PostgreSQL/pgadmin.md @@ -1,15 +1,19 @@ +# PgAdmin + После предоставления доступа к сервису Cloud PostgreSQL пользователь получает возможность управлять базами данных через веб-интерфейс pgAdmin. Ниже приведена инструкция по входу в систему и выполнению основных операций. + ## Вход в pgAdmin -1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к pgAdmin. -2. На странице авторизации введите **логин и пароль от pgAdmin**. +1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к pgAdmin; +2. На странице авторизации введите **логин и пароль от pgAdmin**; > Учетные данные направляются пользователю на электронную почту при предоставлении доступа. -3. После входа в систему в левой панели навигации откройте раздел **Servers**. -4. Выберите предварительно настроенный сервер с названием **PostgreSQL**. -5. В открывшемся окне введите пароль. +3. После входа в систему в левой панели навигации откройте раздел **Servers**; +4. Выберите предварительно настроенный сервер с названием **PostgreSQL**; +5. В открывшемся окне введите пароль; > Важно: на данном этапе необходимо указать **пароль учетной записи базы данных**, а не пароль от pgAdmin. -6. Нажмите **ОК**. +6. Нажмите **ОК**; 7. После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL. + ## Просмотр реплик и параметров конфигурации pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. @@ -18,10 +22,10 @@ pgAdmin позволяет осуществлять мониторинг реп - Откройте раздел **Replica nodes** в панели навигации. Чтобы проверить состояние репликации: -1. Выберите нужную реплику в разделе **Replica nodes**. -2. Перейдите в подраздел **Replication**. -3. Откройте пункт **Replication stats**. -4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации. +1. Выберите нужную реплику в разделе **Replica nodes**; +2. Перейдите в подраздел **Replication**; +3. Откройте пункт **Replication stats**; +4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации; > Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера. Так же, есть возможность посмотреть **параметры конфигурации PostgreSQL**, применённых к конкретной реплике. Для этого необходимо перейти в раздел **Конфигурация**, который расположен в блоке **Replica nodes**. @@ -39,16 +43,16 @@ pgAdmin позволяет осуществлять мониторинг реп - Откройте раздел **Базы данных** в панели навигации. В этом разделе отображается перечень всех созданных баз. Для создания новой базы данных: -1. Щелкните правой кнопкой мыши по разделу **Базы данных**. -2. В контекстном меню выберите **Создать**, затем - **База данных**. -3. Заполните обязательные поля в открывшейся форме. +1. Щелкните правой кнопкой мыши по разделу **Базы данных**; +2. В контекстном меню выберите **Создать**, затем - **База данных**; +3. Заполните обязательные поля в открывшейся форме; 4. Нажмите **Сохранить**. ## Роли входа / группы В разделе **Роли входа/группы** отображается список пользователей (ролей), имеющих доступ к базам данных кластера. Для создания новой роли: -1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**. -2. Выберите **Создать**, затем - **Роль входа/группы**. -3. Заполните необходимые параметры в форме создания роли. +1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**; +2. Выберите **Создать**, затем - **Роль входа/группы**; +3. Заполните необходимые параметры в форме создания роли; 4. Нажмите **Сохранить**. \ No newline at end of file From 319ee317acb3b2a3c97c521aef6d30b12228a43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Fri, 13 Mar 2026 15:45:08 +0300 Subject: [PATCH 05/14] =?UTF-8?q?grafana=20=D0=B8=20pgadmin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.vitepress/config.mts | 20 ++- src/PaaS/PostgreSQL/grafana.md | 98 ----------- src/PaaS/grafana.md | 106 ++++++++++++ src/PaaS/index.md | 14 ++ src/PaaS/{PostgreSQL => }/pgadmin.md | 35 ++-- src/PaaS/postgresql/PostgreSQL-index.md | 19 +++ src/PaaS/postgresql/about.md | 87 ++++++++++ src/PaaS/postgresql/cluster_parameter.md | 205 +++++++++++++++++++++++ src/PaaS/postgresql/connection.md | 86 ++++++++++ src/PaaS/postgresql/user_capabilities.md | 203 ++++++++++++++++++++++ 10 files changed, 763 insertions(+), 110 deletions(-) delete mode 100644 src/PaaS/PostgreSQL/grafana.md create mode 100644 src/PaaS/grafana.md create mode 100644 src/PaaS/index.md rename src/PaaS/{PostgreSQL => }/pgadmin.md (66%) create mode 100644 src/PaaS/postgresql/PostgreSQL-index.md create mode 100644 src/PaaS/postgresql/about.md create mode 100644 src/PaaS/postgresql/cluster_parameter.md create mode 100644 src/PaaS/postgresql/connection.md create mode 100644 src/PaaS/postgresql/user_capabilities.md diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index 5529249..7cc43eb 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -159,6 +159,24 @@ export default defineConfig({ {text: 'Бесплатный период', link: '/start/trial.md'}, {text: 'Платное использование', link: '/start/organization.md'}, ], + + '/PaaS/': [ + { + text: 'Начало работы в Cloud PostgreSQL', link: '/PaaS/index.md', + }, + { text: 'Cloud PostgreSQL', link: '/PaaS/Postgresql-index.md', + collapsed: true, + items: [ + {text: 'Обзор сервиса', link: '/PaaS/postgresql/about.md'}, + {text: 'Описание раздела', link: '/PaaS/postgresql/cluster_parameter.md'}, + {text: 'Общая схема подключения', link: '/PaaS/postgresql/connection.md'}, + {text: 'Создание сервиса', link: '/PaaS/postgresql/user_capabilities.md'}, + ], + }, + {text: 'Веб-интерфейс pgAdmin', link: '/PaaS/pgadmin.md'}, + {text: 'Веб-интерфейс Grafana', link: '/PaaS/grafana.md'}, + ], + // '/billing/': [ // ], @@ -299,7 +317,7 @@ export default defineConfig({ { text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' }, ], }, -{ text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md', + { text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md', collapsed: true, items: [ { text: 'Обзор', link: '/compute/compute-how-to/compute-disks/compute-disk-about.md' }, diff --git a/src/PaaS/PostgreSQL/grafana.md b/src/PaaS/PostgreSQL/grafana.md deleted file mode 100644 index 6717787..0000000 --- a/src/PaaS/PostgreSQL/grafana.md +++ /dev/null @@ -1,98 +0,0 @@ - -# Метрики -## Инструкция по подключению к Grafana. -Для того, чтобы получить доступ к метрикам кластера, предварительно необходимо запросить доступы. Когда доступы будут получены, появится возможность перейти в систему мониторинга. -Ссылка для входа - https://metrics.dfcloud.ru. - -При переходе по ссылке откроется главная страница Grafana. Для того чтобы найти нужные метрики, необходимо проделать следующий путь: -1. Нажать на кнопку "Dashboards", которая располагается в левом боковом меню. -2. В открывшемся списке всех имеющихся дашбордов необходимо выбрать папку "Cloud PostgreSQL". -3. Внутри будет элемент **Cloud PostgreSQL** - это именно тот дашборд, который нам нужен. -Перейдя на дашборд Cloud PostgreSQL, открываются все метрики кластера. - -В верхней части дашборда расположены все селекторы, с помощью которых можно управлять отображаемыми данными: -- **InstallationID** - выбор одного из кластеров. Если у клиента несколько кластеров PostgreSQL, он может выбирать тот кластер, по которому хочет посмотреть информацию; -- **Cluster node name** - выбор конкретной ноды кластера. Значения графиков меняются в зависимости от того, какой хост выбран. Этот селектор влияет на все графики, кроме блока Patroni; -- **Database** - выбор базы данных, по которой можно смотреть показатели метрик; -- **Lock table** - данный селектор применим не для всех графиков. С его помощью можно выбирать, какой тип блокировки использовать для отображения информации; - -## Блок метрик PostgreSQL - -Данный блок отображает ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL. - -| Наименование метрики | Описание метрики | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Version** | Показывает текущую версию PostgreSQL, установленную на кластере. | -| **Current fetch data** | Объем данных, извлеченных из базы за текущий период (операции чтения). | -| **Current insert data** | Объем данных, вставленных в базу (операции записи новых данных). | -| **Current update data** | Объем данных, обновленных в базе. | -| **Seq Page Cost** | Стоимость последовательного чтения страницы данных. Влияет на выбор плана запроса: чем выше значение, тем реже оптимизатор будет выбирать последовательное сканирование таблиц. | -| **Random Page Cost** | Стоимость чтения случайной страницы данных. Низкое значение говорит о том, что в системе используются быстрые диски, и оптимизатор будет чаще выбирать доступ по индексам. | -| **Max Connections** | Максимальное количество одновременных подключений к базе данных, разрешенное на сервере. | -| **Shared Buffers** | Объем оперативной памяти, выделенный под кэш данных PostgreSQL. Здесь хранятся часто используемые данные для ускорения доступа к ним. | -| **Effective Cache** | Предполагаемый размер системного кэша файлов. Используется оптимизатором для оценки вероятности нахождения данных в кэше операционной системы. | -| **Maintenance Work Mem** | Объем памяти для выполнения операций обслуживания. | -| **Work Mem** | Объем памяти, выделяемый для внутренних сортировок и хеш-таблиц при выполнении запросов (на каждую операцию). | -| **Max WAL Size** | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки (checkpoint). | -| **Max Worker Processes** | Максимальное количество фоновых процессов, которые могут быть запущены в системе. | -| **Max Parallel Workers** | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. | - -## Блок метрик Database Stats - -Данный блок метрик отражает текущую нагрузку и состояние баз данных в кластере PostgreSQL. Эти метрики позволяют оценить, насколько эффективно работает база данных, отследить скачки нагрузки и своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений. - -| Наименование метрики | Описание метрики | -| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Average CPU Usage** | Показывает время, затраченное на выполнение пользовательских и системных задач, а также, насколько интенсивно используются вычислительные ресурсы сервера базы данных. | -| **Average Memory Usage** | Средний объем оперативной памяти, используемой процессами PostgreSQL за 5-минутные интервалы. Показывает, сколько памяти потребляет база данных в процессе работы. | -| **Open File Descriptors** | Количество открытых файловых дескрипторов процессами PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) и минимальное (Min) значение за интервал. | -| **Active sessions** | Показывает, сколько в данный момент выполняется запросов к PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) значение. | -| **Transcations** | Количество транзакций в базах данных кластера. Метрика разделена на два типа операций: commits (успешно завершенные транзакции) и rollbacks (откаченные транзакции). | -| **Update data** | Объем данных, обновленных в базах данных кластера. Показывает, сколько данных было изменено в результате выполнения операций UPDATE. | -| **Fetch data (SELECT)** | Объем данных, извлеченных из базы с помощью запросов SELECT. Показывает, сколько данных было считано из базы в результате операций чтения. | -| **Insert data** | Объем данных, вставленных в базы данных кластера. Показывает, сколько данных было добавлено в результате выполнения операций INSERT. | -| **Lock tables** | Количество блокировок таблиц в базах данных кластера. Показывает, сколько раз таблицы были заблокированы для выполнения операций.
AccessShareLock - это блокировка, которая возникает, когда кто-то читает данные из таблицы (делает SELECT). Данная блокировка не мешает операциям чтения, но не дает удалить в этот момент таблицу или изменить ее структуру. | -| **Return data** | Объем данных, возвращаемых клиенту в результате выполнения запросов. Показывает, сколько данных было отправлено обратно клиенту после обработки запросов в базе. | -| **Idle sessions** | Количество бездействующих сессий подключения к базе данных. Показывает, сколько открытых подключений в данный момент не выполняют никаких запросов и просто ждут. | -| **Delete data** | Объем данных, удаленных из базы данных в результате выполнения операций DELETE. Показывает, сколько данных было удалено из таблиц. | -| **Cache Hit Rate** | Показывает процент запросов к данным, которые были удовлетворены из кэша (оперативной памяти), без обращения к диску. Показывает, насколько эффективно используется кэш PostgreSQL. | -| **Buffers (bgwriter)** | Метрика, показывающая активность фонового процесса записи, который занимается синхронизацией данных из оперативной памяти на диск. | -| **Conflicts/Deadlocks** | Метрика, отслеживающая две проблемы при работе с базой данных: конфликты восстановления и взаимоблокировки. | -| **Temp File (Bytes)** | Объем данных, записанных во временные файлы при выполнении запросов в базах данных. PostgreSQL создает временные файлы на диске, когда для выполнения запроса не хватает оперативной памяти. | -| **Checkpoint Stats** | Метрика, показывающая время, затрачиваемое на выполнение checkpoints в PostgreSQL, где:
- write_time - время, затраченное на запись данных на диск во время checkpoint (сколько миллисекунд ушло на запись файлов).
- sync_time - время, затраченное на синхронизацию файлов с диском (чтобы данные гарантированно сохранились). | - -## Блок метрик Patroni - -Данный блок метрик отображает состояние и конфигурацию кластера PostgreSQL под управлением Patroni. Эти метрики позволяют контролировать отказоустойчивость кластера, отслеживать переключения мастера и убеждаться, что репликация работает штатно. - -| Наименование метрики | Описание метрики | -| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Patroni Leader** | Метрика, которая показывает, какая нода в кластере PostgreSQL в данный момент является master-сервером, принимающим запросы на запись. | -| **Patroni Replica** | Метрика, которая показывает, какие узлы кластера PostgreSQL в данный момент выполняют роль реплики. | -| **Sync Standby** | Метрика, которая показывает, какая из реплик в кластере PostgreSQL назначена синхронной. | -| **PostgreSQL WAL Replay** | Метрика, которая показывает, включена ли на узлах кластера синхронизация данных через WAL. | -| **PostgreSQL Pending Restart** | Метрика, которая показывает, требуется ли перезагрузка PostgreSQL на узлах кластера после изменения конфигурационных параметров. | -| **Patroni Primary Node** | Метрика, которая показывает, какой узел в кластере PostgreSQL в данный момент является основным и принимает запросы на запись. | -| **Patroni Secondary Nodes** | Метрика, которая показывает, какие узлы кластера PostgreSQL в определенные моменты времени выполняли роль реплик. | -| **Replicas Received WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), полученных каждой репликой кластера. | -| **Primary WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), на основном сервере кластера PostgreSQL. | -| **Replicas Replayed WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), которые были не просто получены, а уже применены на репликах кластера. | -| **WAL Replay Paused** | Метрика, которая отслеживает, не приостановлен ли процесс применения WAL-журналов на узлах кластера. Если передача или применение WAL-файлов останавливается, на графике происходит скачок. | - -## Блок метрик Hosts - -Блок Hosts управляется селектором **Cluster node name**. Данный блок метрик отображает состояние и ресурсы серверов, на которых развернут кластер PostgreSQL. Эти метрики позволяют оценить, хватает ли серверу ресурсов для текущей нагрузки, и своевременно обнаружить проблемы с производительностью или нехваткой места на дисках. - -| Наименование метрики | Описание метрики | -| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **CPU Busy** | Метрика, показывающая общую загруженность всех процессорных ядер на сервере, где работает PostgreSQL. | -| **RAM Used** | Метрика, показывающая процент оперативной памяти, который занят на сервере всеми процессами. | -| **CPU Cores** | Метрика, показывающая общее количество процессорных ядер, доступных на сервере, где работает PostgreSQL. | -| **RAM Total** | Метрика, показывающая общий объем оперативной памяти, установленный на сервере. | -| **DB Disk Total** | Метрика, показывающая общий объем дискового пространства, выделенного для хранения данных базы данных PostgreSQL на сервере. | -| **CPU Basic** | Метрика, которая показывает детальную разбивку загрузки процессора по типам выполняемых задач. Она позволяет увидеть, на что именно тратится процессорное время на сервере. | -| **Memory Basic** | Метрика, которая показывает детальную разбивку использования оперативной памяти на сервере, а также информацию о SWAP. | -| **Disk IOps** | Метрика, показывающая количество операций чтения и записи, выполняемых на диске сервера в секунду. | -| **Disk Space Used Basic** | Метрика, показывающая процент занятого дискового пространства на всех подключенных файловых системах сервера. | -| **Disk R/W Data** | Показывает объем данных в байтах, читаемых с диска и записываемых на диск в секунду. | -| **Filesystem space available** | Метрика, показывающая объем свободного дискового пространства на файловой системе сервера. | diff --git a/src/PaaS/grafana.md b/src/PaaS/grafana.md new file mode 100644 index 0000000..d265790 --- /dev/null +++ b/src/PaaS/grafana.md @@ -0,0 +1,106 @@ +# Grafana + +## Инструкция по работе с метриками + +Доступ к метрикам кластера предоставляется после запроса соответствующих прав. После получения доступа можно перейти в систему мониторинга по ссылке: + +https://metrics.dfcloud.ru. + +Открывается главная страница Grafana. Для просмотра метрик кластера PostgreSQL выполните следующие шаги: + +1. В левом боковом меню нажмите **Dashboard**; +2. В списке доступных дашбордов выберите **папку Cloud PostgreSQL**; +3. Внутри папки выберите **дашборд Cloud PostgreSQL** — в нём отображаются все метрики кластера. + +## Управление отображаемыми данными + +В верхней части дашборда доступны селекторы для настройки отображения: + +- **InstallationID** - выбор одного опеределенного кластера; +- **Cluster node name** - выбор конкретного нода кластера, в котором значения графиков меняются в зависимости от выбранного хоста (селектор влияет на все графики, кроме блока Patroni); +- **Database** - выбор базы данных, по которым отображаются метрики; +- **Lock table** - выбор типа блокировки для отображения (применим не для всех графиков). + +## Метрики PostgreSQL + +Метрики отображают ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL. + +| Наименование | Описание | Примечание | +|---------------------|-----------------------------------------------------------------------------------------------------------------|------------| +|Version | Текущая версия PostgreSQL, установленную на кластере || +|Current fetch data | Объем данных, извлеченных из базы за текущий период | Для операции чтения | +|Current insert data | Объем данных, вставленных в базу | Для операции записи новых данных | +|Current update data | Объем данных, обновленных в базе || +|Seq Page Cost | Стоимость последовательного чтения страницы данных | Влияет на выбор плана запроса: чем выше значение, тем реже оптимизатор будет выбирать последовательное сканирование таблиц| +|Random Page Cost | Стоимость чтения случайной страницы данных | Низкое значение говорит о том, что в системе используются быстрые диски, и оптимизатор будет чаще выбирать доступ по индексам| +|Max Connections | Максимальное количество одновременных подключений к базе данных, разрешенное на сервере || +|Shared Buffers | Объем оперативной памяти, выделенный под кэш данных PostgreSQL | Хранит часто используемые данные для ускорения доступа к ним| +|Effective Cache | Предполагаемый размер системного кэша файлов | Используется оптимизатором, для оценки вероятности нахождения данных в кэше операционной системы| +|Maintenance Work Mem | Объем памяти для выполнения операций обслуживания. || +|Work Mem | Объем памяти, выделяемый для внутренних сортировок и хеш-таблиц при выполнении запросов | Для каждой операции | +|Max WAL Size | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки |checkpoint| +|Max Worker Processes | Максимальное количество фоновых процессов, которые могут быть запущены в системе. || +|Max Parallel Workers | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. || + +## Метрики Database Stats + +Метрики отображают текущую нагрузку и состояние баз данных в кластере PostgreSQL. Данные метрики позволяют: +- оценить эффективность работы баз данных; +- отследить скачки нагрузки; +- своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений. + +| Наименование | Описание | +|-----------------------| -------------------| +| Average CPU Usage | Показывает время, затраченное на выполнение пользовательских и системных задач, а также, насколько интенсивно используются вычислительные ресурсы сервера базы данных. | +| Average Memory Usage | Средний объем оперативной памяти, используемой процессами PostgreSQL за 5-минутные интервалы. Показывает, сколько памяти потребляет база данных в процессе работы. | +| Open File Descriptors | Количество открытых файловых дескрипторов процессами PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) и минимальное (Min) значение за интервал. | +| Active sessions | Показывает, сколько в данный момент выполняется запросов к PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) значение. | +| Transcations | Количество транзакций в базах данных кластера. Метрика разделена на два типа операций: commits (успешно завершенные транзакции) и rollbacks (откаченные транзакции). | +| Update data | Объем данных, обновленных в базах данных кластера. Показывает, сколько данных было изменено в результате выполнения операций UPDATE. | +| Fetch data (SELECT) | Объем данных, извлеченных из базы с помощью запросов SELECT. Показывает, сколько данных было считано из базы в результате операций чтения. | +| Insert data | Объем данных, вставленных в базы данных кластера. Показывает, сколько данных было добавлено в результате выполнения операций INSERT. | +| Lock tables | Количество блокировок таблиц в базах данных кластера. Показывает, сколько раз таблицы были заблокированы для выполнения операций.
AccessShareLock - это блокировка, которая возникает, когда кто-то читает данные из таблицы (делает SELECT). Данная блокировка не мешает операциям чтения, но не дает удалить в этот момент таблицу или изменить ее структуру. | +| Return data | Объем данных, возвращаемых клиенту в результате выполнения запросов. Показывает, сколько данных было отправлено обратно клиенту после обработки запросов в базе. | +| Idle sessions | Количество бездействующих сессий подключения к базе данных. Показывает, сколько открытых подключений в данный момент не выполняют никаких запросов и просто ждут. | +| Delete data | Объем данных, удаленных из базы данных в результате выполнения операций DELETE. Показывает, сколько данных было удалено из таблиц. | +| Cache Hit Rate | Показывает процент запросов к данным, которые были удовлетворены из кэша (оперативной памяти), без обращения к диску. Показывает, насколько эффективно используется кэш PostgreSQL. | +| Buffers (bgwriter) | Метрика, показывающая активность фонового процесса записи, который занимается синхронизацией данных из оперативной памяти на диск. | +| Conflicts/Deadlocks | Метрика, отслеживающая две проблемы при работе с базой данных: конфликты восстановления и взаимоблокировки. | +| Temp File (Bytes) | Объем данных, записанных во временные файлы при выполнении запросов в базах данных. PostgreSQL создает временные файлы на диске, когда для выполнения запроса не хватает оперативной памяти. | +| Checkpoint Stats | Метрика, показывающая время, затрачиваемое на выполнение checkpoints в PostgreSQL, где:
- **write_time** - время, затраченное на запись данных на диск во время checkpoint (сколько миллисекунд ушло на запись файлов).
- **sync_time** - время, затраченное на синхронизацию файлов с диском (чтобы данные гарантированно сохранились). | + +## Метрики Patroni + +Метрик отображают состояние и конфигурацию кластера PostgreSQL под управлением Patroni. Эти метрики позволяют контролировать отказоустойчивость кластера, отслеживать переключения мастера и убеждаться, что репликация работает штатно. + +| Наименование | Описание | +|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------| +| Patroni Leader | Метрика, которая показывает, какая нода в кластере PostgreSQL в данный момент является master-сервером, принимающим запросы на запись. | +| Patroni Replica | Метрика, которая показывает, какие узлы кластера PostgreSQL в данный момент выполняют роль реплики. | +| Sync Standby | Метрика, которая показывает, какая из реплик в кластере PostgreSQL назначена синхронной. | +| PostgreSQL WAL Replay | Метрика, которая показывает, включена ли на узлах кластера синхронизация данных через WAL. | +| PostgreSQL Pending Restart | Метрика, которая показывает, требуется ли перезагрузка PostgreSQL на узлах кластера после изменения конфигурационных параметров. | +| Patroni Primary Node | Метрика, которая показывает, какой узел в кластере PostgreSQL в данный момент является основным и принимает запросы на запись. | +| Patroni Secondary Nodes | Метрика, которая показывает, какие узлы кластера PostgreSQL в определенные моменты времени выполняли роль реплик. | +| Replicas Received WAL Location | Метрика, показывающая объем журналов предзаписи (WAL), полученных каждой репликой кластера. | +| Primary WAL Location | Метрика, показывающая объем журналов предзаписи (WAL), на основном сервере кластера PostgreSQL. | +| Replicas Replayed WAL Location | Метрика, показывающая объем журналов предзаписи (WAL), которые были не просто получены, а уже применены на репликах кластера. | +| WAL Replay Paused | Метрика, которая отслеживает, не приостановлен ли процесс применения WAL-журналов на узлах кластера. Если передача или применение WAL-файлов останавливается, на графике происходит скачок. | + +## Метрики Hosts + +Блок Hosts управляется селектором **Cluster node name**. Метрики отображают состояние и ресурсы серверов, на которых развернут кластер PostgreSQL. Данные метрики позволяют оценить, хватает ли серверу ресурсов для текущей нагрузки, и своевременно обнаружить проблемы с производительностью или нехваткой места на дисках. + +| Наименование | Описание | +| ---------------------------|-------------------------------------------------------------------------------------------------------------------------------| +| CPU Busy | Метрика, показывающая общую загруженность всех процессорных ядер на сервере, где работает PostgreSQL. | +| RAM Used | Метрика, показывающая процент оперативной памяти, который занят на сервере всеми процессами. | +| CPU Cores | Метрика, показывающая общее количество процессорных ядер, доступных на сервере, где работает PostgreSQL. | +| RAM Total | Метрика, показывающая общий объем оперативной памяти, установленный на сервере. | +| DB Disk Total | Метрика, показывающая общий объем дискового пространства, выделенного для хранения данных базы данных PostgreSQL на сервере. | +| CPU Basic | Метрика, которая показывает детальную разбивку загрузки процессора по типам выполняемых задач. Она позволяет увидеть, на что именно тратится процессорное время на сервере. | +| Memory Basic | Метрика, которая показывает детальную разбивку использования оперативной памяти на сервере, а также информацию о SWAP. | +| Disk IOps | Метрика, показывающая количество операций чтения и записи, выполняемых на диске сервера в секунду. | +| Disk Space Used Basic | Метрика, показывающая процент занятого дискового пространства на всех подключенных файловых системах сервера. | +| Disk R/W Data | Показывает объем данных в байтах, читаемых с диска и записываемых на диск в секунду. | +| Filesystem space available | Метрика, показывающая объем свободного дискового пространства на файловой системе сервера. | diff --git a/src/PaaS/index.md b/src/PaaS/index.md new file mode 100644 index 0000000..aabc1ca --- /dev/null +++ b/src/PaaS/index.md @@ -0,0 +1,14 @@ +--- +section_links: + - title: Grafana + link: /PaaS/grafana.md + description: Мониторинг и визуализация метрик кластера + - title: PgAdmin + link: /PaaS/pgadmin.md + description: Веб‑интерфейс для администрирования PostgreSQL + +--- + +# Cloud PostgreSQL + +В данном разделе представлена документация по управляемым сервисам платформы Beeline Cloud, относящимся к категории **PaaS**. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/pgadmin.md b/src/PaaS/pgadmin.md similarity index 66% rename from src/PaaS/PostgreSQL/pgadmin.md rename to src/PaaS/pgadmin.md index 7133416..9c282a3 100644 --- a/src/PaaS/PostgreSQL/pgadmin.md +++ b/src/PaaS/pgadmin.md @@ -1,6 +1,6 @@ # PgAdmin -После предоставления доступа к сервису Cloud PostgreSQL пользователь получает возможность управлять базами данных через веб-интерфейс pgAdmin. Ниже приведена инструкция по входу в систему и выполнению основных операций. +После предоставления доступа к сервису **Cloud PostgreSQL** пользователь получает возможность управлять базами данных через веб-интерфейс **pgAdmin**. Ниже приведена инструкция по входу в систему и выполнению основных операций. ## Вход в pgAdmin @@ -11,47 +11,60 @@ 4. Выберите предварительно настроенный сервер с названием **PostgreSQL**; 5. В открывшемся окне введите пароль; > Важно: на данном этапе необходимо указать **пароль учетной записи базы данных**, а не пароль от pgAdmin. -6. Нажмите **ОК**; -7. После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL. +6. Нажмите **ОК**. + +После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL. ## Просмотр реплик и параметров конфигурации pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. +### Список реплик + Чтобы просмотреть список реплик: - Откройте раздел **Replica nodes** в панели навигации. +### Состояние репликации + Чтобы проверить состояние репликации: 1. Выберите нужную реплику в разделе **Replica nodes**; 2. Перейдите в подраздел **Replication**; 3. Откройте пункт **Replication stats**; -4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации; -> Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера. +4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации. -Так же, есть возможность посмотреть **параметры конфигурации PostgreSQL**, применённых к конкретной реплике. Для этого необходимо перейти в раздел **Конфигурация**, который расположен в блоке **Replica nodes**. +Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера. -Во вкладке отображается таблица со следующими колонками: +### Конфигурация реплики + +Чтобы просмотреть **параметры конфигурации PostgreSQL**, применённые к конкретной реплике, перейдите в раздел **Конфигурация**, расположенный в блоке **Replica nodes**. + +Раздел **Конфигурация** содержит следующие параметры: - **Имя** - наименование конфигурационного параметра; - **Категория** - логическая группа параметра; - **Значение** - текущее установленное значение; - **Единицы** - единицы измерения (если применимо); - **Описание** - краткое пояснение назначения параметра. > Вкладка **Конфигурация** предназначена для просмотра текущих настроек реплики. + ## Просмотр и управление базами данных -Для просмотра существующих баз данных: -- Откройте раздел **Базы данных** в панели навигации. В этом разделе отображается перечень всех созданных баз. +### Просмотр существующих баз данных: + +Чтобы просмотреть существующие базы данных, откройте раздел Базы данных в левой панели навигации. В этом разделе отображается перечень всех созданных баз. + +### Создание новой базы данных: -Для создания новой базы данных: 1. Щелкните правой кнопкой мыши по разделу **Базы данных**; 2. В контекстном меню выберите **Создать**, затем - **База данных**; 3. Заполните обязательные поля в открывшейся форме; 4. Нажмите **Сохранить**. + ## Роли входа / группы В разделе **Роли входа/группы** отображается список пользователей (ролей), имеющих доступ к базам данных кластера. -Для создания новой роли: +### Создание новой роли: + 1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**; 2. Выберите **Создать**, затем - **Роль входа/группы**; 3. Заполните необходимые параметры в форме создания роли; diff --git a/src/PaaS/postgresql/PostgreSQL-index.md b/src/PaaS/postgresql/PostgreSQL-index.md new file mode 100644 index 0000000..3e5f030 --- /dev/null +++ b/src/PaaS/postgresql/PostgreSQL-index.md @@ -0,0 +1,19 @@ +--- +section_links: + - title: Назначение сервсиа + link: /PaaS/PostgreSQL/about.md + description: Конфигурации и возможности сервиса + - title: Параметры кластера PostgreSQL + link: /PaaS/PostgreSQL/cluster_parameter.md + description: Технические параметры кластера PostgreSQL + - title: Схема подключения + link: /PaaS/PostgreSQL/connection.md + description: Общая схема подключения к Cloud PostgreSQL + - title: Создание сервиса + link: /PaaS/PostgreSQL/user_capabilities.md + description: Создание сервиса Cloud PostgreSQL +--- + +# Cloud PostgreSQL + +В данном разделе представлена документация по управляемому сервису **Cloud PostgreSQL** платформы Beeline Cloud. \ No newline at end of file diff --git a/src/PaaS/postgresql/about.md b/src/PaaS/postgresql/about.md new file mode 100644 index 0000000..b286657 --- /dev/null +++ b/src/PaaS/postgresql/about.md @@ -0,0 +1,87 @@ +# Cloud PostgreSQL + +## Назначение сервиса + +**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. + +PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. + +В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически. + +Сервис самостоятельно: +- управляет ролями серверов базы данных (основной сервер и реплики); +- отслеживает состояние узлов; +- автоматически переключает основной сервер при сбоях. + +Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: +- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах; +- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов; +- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами. + +Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа. + +Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер. + +## Конфигурации кластера + +Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно. + +Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает: + +- синхронную репликацию данных; +- повышенную отказоустойчивость. + +В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: + +- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных; +- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя. + +Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). + +В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования. + +## Режимы репликации + +По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик. + +Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения. + +При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой. + +## Доступ к серверам и оптимизация соединений + +Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом. + +На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. + +::: warning Примечание + +Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. + +::: + +## Возможности сервиса + +**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. + +Сервис обеспечивает: + +- автоматическое управление кластером PostgreSQL; +- высокую доступность за счёт репликации и автоматического переключения primary-узла; +- единую точку подключения к базе данных через прокси; +- автоматическое переключение при отказе узлов кластера без вмешательства пользователя; +- web-доступ к управлению базами данных и пользователями через pgAdmin; +- совместимость со стандартными клиентскими инструментами PostgreSQL; +- возможность установки расширений PostgreSQL в базу данных. + +## Сценарии использования сервиса + +**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. + +Сервис может применяться в следующих сценариях: + +- размещение production-баз данных с высокими требованиями к доступности; +- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных; +- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры; +- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; +- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. diff --git a/src/PaaS/postgresql/cluster_parameter.md b/src/PaaS/postgresql/cluster_parameter.md new file mode 100644 index 0000000..bf27193 --- /dev/null +++ b/src/PaaS/postgresql/cluster_parameter.md @@ -0,0 +1,205 @@ +# О разделе + +Данный раздел содержит описание технических параметров кластера PostgreSQL и порядок их первичной конфигурации. + +Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. + +Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. + +## Выбор типа и размера дискового хранилища + +Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. + +**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. + +## Доступные типы хранилищ: + +| Название | Лимит IOPS | Время отклика | +| ---------------| ------------------ | ------------- | +| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | +| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | +| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | +| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | + +::: warning Примечание + +После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ. + +::: + +## Конфигурация вычислительных ресурсов + +В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. + +### Количество нод в кластере + +Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения. + +Количество нод выбирается в диапазоне **от 1 до 5**. + +### Процессор (CPU) + +Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет: + +- обрабатывать запросы; +- выполнять сложные операции (сортировки, объединения таблиц); +- обслуживать одновременные подключения. + +Доступный диапазон: **от 2 до 24 vCPU** на ноду. + +### Оперативная память (RAM) + +Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. + +Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду. + +### Доступ в интернет + +При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. + +**Доступные варианты скорости:** +- 50 Мбит/с; +- 100 Мбит/с; +- 200 Мбит/с; +- 300 Мбит/с; +- 400 Мбит/с; +- 500 Мбит/с; +- 1000 Мбит/с (1 Гбит/с). + +::: warning Примечание + +Для выбранного канала предоставляется статический белый IP-адрес. + +::: + +## Параметры конфигурации IPSEC + +Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению. + +### Данные о конфигурации IPSEC + +Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. + +### Версия IKE (Internet Key Exchange) + +Версия IKE выбирается из выпадающего списка, который содержит два значения: + +- **IKE v1** — более ранняя версия протокола; +- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. + +Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. + +### Метод аутентификации + +Метод аутентификации выбирается из выпадающего списка, который содержит два варианта: + +- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа; +- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов. + +## Этап 1 - установка защищенного соединения + +На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков. + +### Алгоритм хэширования + +Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка: + +- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. +- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью. +- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности. +- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. + +### Шифрование (Hash) + +Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка: + +AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. +AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. +AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа. + +### DH Group (группа Диффи — Хеллмана) + +Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения. + +Параметр заполняется вручную из выпадающего списка: + +group 2; +group 5; +group 14; +group 15; +group 16; +group 19; +group 20; +group 21. + +### IKE Mode (только для IKEv1) + +Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. + +Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. + +- **Main Mode** — стандартный и более безопасный режим работы IKEv1; +- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных. + +### Время жизни (Lifetime) + +Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей. + +## Этап 2 - передача данных + +Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. + +### Алгоритм хэширование (Hash) + +Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы: + +- SHA1; +- SHA2-256; +- SHA2-384; +- SHA2-512. + +## Шифрование + +Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: + +- AES 128; +- AES 256; +- AES GCM 128; +- AES GCM 192; +- AES GCM 256. + +### PFS + +**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе. + +Данный параметр представлен в виде чекбокса. При его включении: + +- на этапе 2 выполняется дополнительный обмен ключами DH; +- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; +- ключи шифрования пользовательского трафика не зависят от ключей этапа 1. + +### DH Group (группа Диффи — Хеллмана) + +Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: + +- group 2; +- group 5; +- group 14; +- group 15; +- group 16; +- group 19; +- group 20; +- group 21. + +### Время жизни (Lifetime) + +Определяет, как долго действуют согласованные ключи в рамках второй фазы. + +- рекомендуемое значение: 3600 секунд (1 час); +- после истечения времени выполняется повторная генерация ключей. + +### Префиксы локальной сети заказчика + +Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/postgresql/connection.md b/src/PaaS/postgresql/connection.md new file mode 100644 index 0000000..d561775 --- /dev/null +++ b/src/PaaS/postgresql/connection.md @@ -0,0 +1,86 @@ +# Общая схема подключения + +Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется. + +Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. + +В зависимости от выбранного порта прокси автоматически направляет трафик: +- на активный primary-узел - для операций чтения и записи +- на реплики - для операций только чтения + +Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер. + +## Подключение к базе данных + +Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги. + +Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него. + +Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены. + +## Доступные порты + +Для разных типов нагрузки используются разные порты: + +|Порт |Назначение | +|------|-----------------------------------------| +|5432 |Primary (чтение и запись) | +|15432 |Replica (только чтение) | +|6432 |Primary через PgBouncer (чтение и запись)| +|16432 |Replica через PgBouncer (только чтение) | + +### Особенности работы портов + +- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически; +- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin; +- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается. + +### Рекомендации по выбору порта + +- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**; +- Для операций записи используйте **master-порты (5432 или 6432)**; +- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**. + +## Доступ к pgAdmin + +Для администрирования базы данных используется web-интерфейс pgAdmin. +Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса: +`10.X.X.4 .cloud-pg.dfcloud.ru` + +После добавления записи pgAdmin будет доступен по адресу: +`https://.cloud-pg.dfcloud.ru` + +Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису. + +::: warning Важно + +- подключение к базе данных возможно только через указанный прокси-IP; +- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных; +- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде. + +::: + +## Примеры подключения к PostgreSQL + +Подключение к primary: +`psql -h 10.X.X.4 -p 5432 -U -d ` + +Подключение через PgBouncer: +`psql -h 10.X.X.4 -p 6432 -U -d ` + +### Подключение через DBeaver / DataGrip + +При создании подключения укажите: +- Host: 10.X.X.4; +- Port: 5432 или 6432; +- Database: ``; +- User / Password: согласно выданным доступам; +- Тип подключения: PostgreSQL. + +### Пример строки подключения + +Primary: +`postgresql://:@10.X.X.4:5432/` + +Через PgBouncer: +`postgresql://:@10.X.X.4:6432/` diff --git a/src/PaaS/postgresql/user_capabilities.md b/src/PaaS/postgresql/user_capabilities.md new file mode 100644 index 0000000..dbe1ea2 --- /dev/null +++ b/src/PaaS/postgresql/user_capabilities.md @@ -0,0 +1,203 @@ +# Создание сервиса Cloud PostgreSQL + +Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQ**L**, а также перечень административных операций, доступных ему для самостоятельного выполнения. + +При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL. + +## Общая информация о пользователе + +При инициализации сервиса автоматически создаётся пользователь: + +```nginx +client +``` + +Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий. + +## Выданные права и ограничения + +Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных. + +### Атрибуты роли + +Пользователь создаётся со следующими атрибутами: +- `CREATEDB` — разрешено создание и удаление баз данных; +- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их. + +Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует. + +### Права на системную базу postgres: + +К стандартной базе данных `postgres` пользователю предоставлено только право подключения: +- `CONNECT` +Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются. + +### Мониторинг и системные представления: + +Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены: +- членство в роли `pg_monitor`; +- право `SELECT` на системное представление: +```sql +pg_catalog.pg_stat_replication +``` + +Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно. + +## Обязательная смена пароля + +После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля. +Смена пароля может быть выполнена: +- в открытом виде (с передачей нового значения пароля); +- с указанием заранее сгенерированного хэша. + +На сервере используется алгоритм шифрования паролей: + +``` +scram-sha-256 +``` + +При использовании SCRAM применяется следующий формат хэша: + +``` +$:$: +``` + +### Пример смены пароля в открытом виде + +```sql +ALTER USER client WITH PASSWORD 'new_strong_password'; +``` + +### Пример смены пароля с указанием хэша + +```sql +ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...'; +``` + +Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище. + +## Создание новой базы данных + +Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL. + +### Пример создания базы данных + +Для создания базы данных используется стандартная команда: + +```sql +CREATE DATABASE app_db; +``` + +Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает. + +### Пример создания базы данных с указанием владельца + +```sql +CREATE DATABASE app_db OWNER client; +``` + +В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. + +## Создание пользователей и ролей + +Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа. + +### Создание роли без логина + +Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду: + +```sql +CREATE ROLE app_role; +``` + +### Создание пользователя с паролем + +Для создания пользователя с паролем используется команда: + +```sql +CREATE USER app_user WITH PASSWORD 'app_password'; +``` + +После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. + +### Назначение роли пользователю + +Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли: + +```sql +GRANT app_role TO app_user; +``` + +После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. + +### Передача владельца базы данных + +Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды: + +```sql +ALTER DATABASE app_db OWNER TO app_user; +``` + +Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней. + +### Управление правами доступа + +После создания пользователей и ролей необходимо назначить им соответствующие права доступа. + +### Выдача прав на подключение к базе данных + +Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права: + +```sql +GRANT CONNECT ON DATABASE app_db TO app_user; +``` + +Эта команда разрешает пользователю `app_user` подключаться к базе данных `app_db`. + +### Права на схему public + +Для предоставления пользователю прав на использование схемы `public` можно выполнить следующую команду: + +```sql +GRANT USAGE, CREATE ON SCHEMA public TO app_user; +``` + +Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. + +### Права на существующие таблицы + +Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду: + +```sql +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; +``` + +Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`. + +### Права на будущие таблицы + +Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду: + +```sql +ALTER DEFAULT PRIVILEGES IN SCHEMA public +GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; +``` + +Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. + +## Мониторинг репликации + +Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL. + +### Просмотр состояния репликации + +Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению: + +``` SQL +SELECT * FROM pg_stat_replication; +``` +Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. + +### Ограничения доступа + +Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации. \ No newline at end of file From d0c4da711aab8754a1bb77ec9de54c860ecb727a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Fri, 13 Mar 2026 17:30:38 +0300 Subject: [PATCH 06/14] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/pgadmin.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PaaS/pgadmin.md b/src/PaaS/pgadmin.md index 9c282a3..4705c3c 100644 --- a/src/PaaS/pgadmin.md +++ b/src/PaaS/pgadmin.md @@ -15,16 +15,16 @@ После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL. -## Просмотр реплик и параметров конфигурации +## Реплики и параметры конфигураций pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. -### Список реплик +### Просмотр списка реплик Чтобы просмотреть список реплик: - Откройте раздел **Replica nodes** в панели навигации. -### Состояние репликации +### Просмотр состояния репликаций Чтобы проверить состояние репликации: 1. Выберите нужную реплику в разделе **Replica nodes**; @@ -34,7 +34,7 @@ pgAdmin позволяет осуществлять мониторинг реп Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера. -### Конфигурация реплики +### Просмотр конфигураций реплики Чтобы просмотреть **параметры конфигурации PostgreSQL**, применённые к конкретной реплике, перейдите в раздел **Конфигурация**, расположенный в блоке **Replica nodes**. @@ -46,7 +46,7 @@ pgAdmin позволяет осуществлять мониторинг реп - **Описание** - краткое пояснение назначения параметра. > Вкладка **Конфигурация** предназначена для просмотра текущих настроек реплики. -## Просмотр и управление базами данных +## Базы данных ### Просмотр существующих баз данных: From 8ea9b9cfba3d787b4a88fbd22df8234fa425cd17 Mon Sep 17 00:00:00 2001 From: dmvstrelnikov Date: Mon, 16 Mar 2026 17:24:58 +0300 Subject: [PATCH 07/14] chore: update build-npm.yml --- ci/build-npm.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/build-npm.yml b/ci/build-npm.yml index b53dc8d..3a75426 100644 --- a/ci/build-npm.yml +++ b/ci/build-npm.yml @@ -1,12 +1,12 @@ build:npm: image: harbor.vimpelcom.ru/dockerhub/library/node:lts stage: build - cache: - - key: - files: - - package.json - paths: - - node_modules/ + #cache: + # - key: + # files: + # - package.json + # paths: + # - node_modules/ rules: - !reference [.build-npm-rules, rules] variables: From 2f97666bb3857d6f2168c3820d8fa9b1167563f2 Mon Sep 17 00:00:00 2001 From: dmvstrelnikov Date: Mon, 16 Mar 2026 17:25:36 +0300 Subject: [PATCH 08/14] chore: update build-npm.yml --- ci/build-npm.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/build-npm.yml b/ci/build-npm.yml index 3a75426..b53dc8d 100644 --- a/ci/build-npm.yml +++ b/ci/build-npm.yml @@ -1,12 +1,12 @@ build:npm: image: harbor.vimpelcom.ru/dockerhub/library/node:lts stage: build - #cache: - # - key: - # files: - # - package.json - # paths: - # - node_modules/ + cache: + - key: + files: + - package.json + paths: + - node_modules/ rules: - !reference [.build-npm-rules, rules] variables: From 983d12aa4c46275bd7c8ecc696b7d7b704dbce87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Mon, 16 Mar 2026 17:41:12 +0300 Subject: [PATCH 09/14] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D1=83=D1=8E=D1=89?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PostgreSQL-index.md | 0 src/PaaS/postgresql/about.md | 87 -------- src/PaaS/postgresql/cluster_parameter.md | 205 ------------------ src/PaaS/postgresql/connection.md | 86 -------- src/PaaS/postgresql/user_capabilities.md | 203 ----------------- 5 files changed, 581 deletions(-) rename src/PaaS/{postgresql => PostgreSQL}/PostgreSQL-index.md (100%) delete mode 100644 src/PaaS/postgresql/about.md delete mode 100644 src/PaaS/postgresql/cluster_parameter.md delete mode 100644 src/PaaS/postgresql/connection.md delete mode 100644 src/PaaS/postgresql/user_capabilities.md diff --git a/src/PaaS/postgresql/PostgreSQL-index.md b/src/PaaS/PostgreSQL/PostgreSQL-index.md similarity index 100% rename from src/PaaS/postgresql/PostgreSQL-index.md rename to src/PaaS/PostgreSQL/PostgreSQL-index.md diff --git a/src/PaaS/postgresql/about.md b/src/PaaS/postgresql/about.md deleted file mode 100644 index b286657..0000000 --- a/src/PaaS/postgresql/about.md +++ /dev/null @@ -1,87 +0,0 @@ -# Cloud PostgreSQL - -## Назначение сервиса - -**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости. - -PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений. - -В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически. - -Сервис самостоятельно: -- управляет ролями серверов базы данных (основной сервер и реплики); -- отслеживает состояние узлов; -- автоматически переключает основной сервер при сбоях. - -Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов: -- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах; -- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов; -- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами. - -Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа. - -Для управления базами данных и пользователями доступен web-интерфейс **pgAdmin**, позволяющий выполнять администрирование непосредственно через браузер. - -## Конфигурации кластера - -Сервис Cloud PostgreSQL поддерживает версии СУБД с 13 по 17 включительно. - -Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает: - -- синхронную репликацию данных; -- повышенную отказоустойчивость. - -В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий: - -- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных; -- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя. - -Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT). - -В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования. - -## Режимы репликации - -По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик. - -Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения. - -При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой. - -## Доступ к серверам и оптимизация соединений - -Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом. - -На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных. - -::: warning Примечание - -Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами. - -::: - -## Возможности сервиса - -**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры. - -Сервис обеспечивает: - -- автоматическое управление кластером PostgreSQL; -- высокую доступность за счёт репликации и автоматического переключения primary-узла; -- единую точку подключения к базе данных через прокси; -- автоматическое переключение при отказе узлов кластера без вмешательства пользователя; -- web-доступ к управлению базами данных и пользователями через pgAdmin; -- совместимость со стандартными клиентскими инструментами PostgreSQL; -- возможность установки расширений PostgreSQL в базу данных. - -## Сценарии использования сервиса - -**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных. - -Сервис может применяться в следующих сценариях: - -- размещение production-баз данных с высокими требованиями к доступности; -- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных; -- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры; -- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; -- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. diff --git a/src/PaaS/postgresql/cluster_parameter.md b/src/PaaS/postgresql/cluster_parameter.md deleted file mode 100644 index bf27193..0000000 --- a/src/PaaS/postgresql/cluster_parameter.md +++ /dev/null @@ -1,205 +0,0 @@ -# О разделе - -Данный раздел содержит описание технических параметров кластера PostgreSQL и порядок их первичной конфигурации. - -Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. - -Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. - -## Выбор типа и размера дискового хранилища - -Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. - -**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы. - -## Доступные типы хранилищ: - -| Название | Лимит IOPS | Время отклика | -| ---------------| ------------------ | ------------- | -| **Fast SAS** | до 2 IOPS на 1 ГБ | до 10 мс | -| **SSD** | до 5 IOPS на 1 ГБ | до 7 мс | -| **Fast SSD** | до 10 IOPS на 1 ГБ | до 5 мс | -| **Ultra NVMe** | до 25 IOPS на 1 ГБ | до 3 мс | - -::: warning Примечание - -После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ. - -::: - -## Конфигурация вычислительных ресурсов - -В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL. - -### Количество нод в кластере - -Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения. - -Количество нод выбирается в диапазоне **от 1 до 5**. - -### Процессор (CPU) - -Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет: - -- обрабатывать запросы; -- выполнять сложные операции (сортировки, объединения таблиц); -- обслуживать одновременные подключения. - -Доступный диапазон: **от 2 до 24 vCPU** на ноду. - -### Оперативная память (RAM) - -Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. - -Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду. - -### Доступ в интернет - -При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет. - -**Доступные варианты скорости:** -- 50 Мбит/с; -- 100 Мбит/с; -- 200 Мбит/с; -- 300 Мбит/с; -- 400 Мбит/с; -- 500 Мбит/с; -- 1000 Мбит/с (1 Гбит/с). - -::: warning Примечание - -Для выбранного канала предоставляется статический белый IP-адрес. - -::: - -## Параметры конфигурации IPSEC - -Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению. - -### Данные о конфигурации IPSEC - -Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. - -### Версия IKE (Internet Key Exchange) - -Версия IKE выбирается из выпадающего списка, который содержит два значения: - -- **IKE v1** — более ранняя версия протокола; -- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. - -Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. - -### Метод аутентификации - -Метод аутентификации выбирается из выпадающего списка, который содержит два варианта: - -- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа; -- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов. - -## Этап 1 - установка защищенного соединения - -На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков. - -### Алгоритм хэширования - -Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка: - -- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. -- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью. -- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности. -- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. - -### Шифрование (Hash) - -Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка: - -AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. -AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. -AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа. - -### DH Group (группа Диффи — Хеллмана) - -Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения. - -Параметр заполняется вручную из выпадающего списка: - -group 2; -group 5; -group 14; -group 15; -group 16; -group 19; -group 20; -group 21. - -### IKE Mode (только для IKEv1) - -Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. - -Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. - -- **Main Mode** — стандартный и более безопасный режим работы IKEv1; -- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных. - -### Время жизни (Lifetime) - -Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей. - -## Этап 2 - передача данных - -Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. - -### Алгоритм хэширование (Hash) - -Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы: - -- SHA1; -- SHA2-256; -- SHA2-384; -- SHA2-512. - -## Шифрование - -Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: - -- AES 128; -- AES 256; -- AES GCM 128; -- AES GCM 192; -- AES GCM 256. - -### PFS - -**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе. - -Данный параметр представлен в виде чекбокса. При его включении: - -- на этапе 2 выполняется дополнительный обмен ключами DH; -- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; -- ключи шифрования пользовательского трафика не зависят от ключей этапа 1. - -### DH Group (группа Диффи — Хеллмана) - -Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. - -Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: - -- group 2; -- group 5; -- group 14; -- group 15; -- group 16; -- group 19; -- group 20; -- group 21. - -### Время жизни (Lifetime) - -Определяет, как долго действуют согласованные ключи в рамках второй фазы. - -- рекомендуемое значение: 3600 секунд (1 час); -- после истечения времени выполняется повторная генерация ключей. - -### Префиксы локальной сети заказчика - -Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file diff --git a/src/PaaS/postgresql/connection.md b/src/PaaS/postgresql/connection.md deleted file mode 100644 index d561775..0000000 --- a/src/PaaS/postgresql/connection.md +++ /dev/null @@ -1,86 +0,0 @@ -# Общая схема подключения - -Доступ к кластеру PostgreSQL осуществляется через прокси. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта. Прямое подключение к узлам базы данных не используется. - -Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей. - -В зависимости от выбранного порта прокси автоматически направляет трафик: -- на активный primary-узел - для операций чтения и записи -- на реплики - для операций только чтения - -Прямое подключение к отдельным узлам базы данных не используется и не предоставляется. Взаимодействие с кластером всегда выполняется через прокси-сервер. - -## Подключение к базе данных - -Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги. - -Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него. - -Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены. - -## Доступные порты - -Для разных типов нагрузки используются разные порты: - -|Порт |Назначение | -|------|-----------------------------------------| -|5432 |Primary (чтение и запись) | -|15432 |Replica (только чтение) | -|6432 |Primary через PgBouncer (чтение и запись)| -|16432 |Replica через PgBouncer (только чтение) | - -### Особенности работы портов - -- Порты для чтения и записи (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически; -- Порты только для чтения (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin; -- Если в кластере отсутствуют реплики, порты для чтения не используются - подключение по ним не устанавливается. - -### Рекомендации по выбору порта - -- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**; -- Для операций записи используйте **master-порты (5432 или 6432)**; -- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**. - -## Доступ к pgAdmin - -Для администрирования базы данных используется web-интерфейс pgAdmin. -Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса: -`10.X.X.4 .cloud-pg.dfcloud.ru` - -После добавления записи pgAdmin будет доступен по адресу: -`https://.cloud-pg.dfcloud.ru` - -Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису. - -::: warning Важно - -- подключение к базе данных возможно только через указанный прокси-IP; -- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных; -- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде. - -::: - -## Примеры подключения к PostgreSQL - -Подключение к primary: -`psql -h 10.X.X.4 -p 5432 -U -d ` - -Подключение через PgBouncer: -`psql -h 10.X.X.4 -p 6432 -U -d ` - -### Подключение через DBeaver / DataGrip - -При создании подключения укажите: -- Host: 10.X.X.4; -- Port: 5432 или 6432; -- Database: ``; -- User / Password: согласно выданным доступам; -- Тип подключения: PostgreSQL. - -### Пример строки подключения - -Primary: -`postgresql://:@10.X.X.4:5432/` - -Через PgBouncer: -`postgresql://:@10.X.X.4:6432/` diff --git a/src/PaaS/postgresql/user_capabilities.md b/src/PaaS/postgresql/user_capabilities.md deleted file mode 100644 index dbe1ea2..0000000 --- a/src/PaaS/postgresql/user_capabilities.md +++ /dev/null @@ -1,203 +0,0 @@ -# Создание сервиса Cloud PostgreSQL - -Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQ**L**, а также перечень административных операций, доступных ему для самостоятельного выполнения. - -При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL. - -## Общая информация о пользователе - -При инициализации сервиса автоматически создаётся пользователь: - -```nginx -client -``` - -Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL. Он предназначен для самостоятельного управления базами данных, ролями и правами доступа в пределах выданных привилегий. - -## Выданные права и ограничения - -Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных. - -### Атрибуты роли - -Пользователь создаётся со следующими атрибутами: -- `CREATEDB` — разрешено создание и удаление баз данных; -- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их. - -Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует. - -### Права на системную базу postgres: - -К стандартной базе данных `postgres` пользователю предоставлено только право подключения: -- `CONNECT` -Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются. - -### Мониторинг и системные представления: - -Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены: -- членство в роли `pg_monitor`; -- право `SELECT` на системное представление: -```sql -pg_catalog.pg_stat_replication -``` - -Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно. - -## Обязательная смена пароля - -После первого подключения к базе данных пользователь `client` обязан выполнить смену пароля. -Смена пароля может быть выполнена: -- в открытом виде (с передачей нового значения пароля); -- с указанием заранее сгенерированного хэша. - -На сервере используется алгоритм шифрования паролей: - -``` -scram-sha-256 -``` - -При использовании SCRAM применяется следующий формат хэша: - -``` -$:$: -``` - -### Пример смены пароля в открытом виде - -```sql -ALTER USER client WITH PASSWORD 'new_strong_password'; -``` - -### Пример смены пароля с указанием хэша - -```sql -ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...'; -``` - -Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище. - -## Создание новой базы данных - -Пользователь `client` имеет право создавать новые базы данных в рамках своего экземпляра PostgreSQL. - -### Пример создания базы данных - -Для создания базы данных используется стандартная команда: - -```sql -CREATE DATABASE app_db; -``` - -Если необходимо назначить владельца базы данных, можно указать соответствующего пользователя. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает. - -### Пример создания базы данных с указанием владельца - -```sql -CREATE DATABASE app_db OWNER client; -``` - -В этом примере база данных `app_db` будет принадлежать пользователю `client`. Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. - -## Создание пользователей и ролей - -Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа. - -### Создание роли без логина - -Если требуется создать роль, которая не будет иметь возможности входа в базу данных (например, для организации прав доступа), можно использовать команду: - -```sql -CREATE ROLE app_role; -``` - -### Создание пользователя с паролем - -Для создания пользователя с паролем используется команда: - -```sql -CREATE USER app_user WITH PASSWORD 'app_password'; -``` - -После этого новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. - -### Назначение роли пользователю - -Для назначения роли пользователю используется команда `GRANT`. Это позволяет управлять правами пользователя в рамках определённой роли: - -```sql -GRANT app_role TO app_user; -``` - -После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. - -### Передача владельца базы данных - -Если необходимо передать право владения базой данных другому пользователю, это можно сделать с помощью следующей команды: - -```sql -ALTER DATABASE app_db OWNER TO app_user; -``` - -Теперь база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней. - -### Управление правами доступа - -После создания пользователей и ролей необходимо назначить им соответствующие права доступа. - -### Выдача прав на подключение к базе данных - -Для того чтобы пользователь мог подключаться к базе данных, нужно предоставить ему соответствующие права: - -```sql -GRANT CONNECT ON DATABASE app_db TO app_user; -``` - -Эта команда разрешает пользователю `app_user` подключаться к базе данных `app_db`. - -### Права на схему public - -Для предоставления пользователю прав на использование схемы `public` можно выполнить следующую команду: - -```sql -GRANT USAGE, CREATE ON SCHEMA public TO app_user; -``` - -Эти права позволяют пользователю `app_user` использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. - -### Права на существующие таблицы - -Чтобы предоставить пользователю доступ к существующим таблицам в схеме `public`, можно использовать команду: - -```sql -GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; -``` - -Эта команда позволяет пользователю `app_user` выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`. - -### Права на будущие таблицы - -Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`, используйте команду: - -```sql -ALTER DEFAULT PRIVILEGES IN SCHEMA public -GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user; -``` - -Эта команда обеспечит, что все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. - -## Мониторинг репликации - -Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL. - -### Просмотр состояния репликации - -Для того чтобы просмотреть текущий статус репликации, пользователь может выполнить запрос к системному представлению: - -``` SQL -SELECT * FROM pg_stat_replication; -``` -Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. - -### Ограничения доступа - -Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации. \ No newline at end of file From 2a4796a45487fc7393216da08b34fab9dc6fdbdc Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Wed, 18 Mar 2026 12:53:51 +0300 Subject: [PATCH 10/14] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20grafana?= =?UTF-8?q?=20=D0=B8=20pgadmin=20=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA=D1=83?= =?UTF-8?q?=20=D1=81=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B5=D0=B9=20PostgreSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/{ => PostgreSQL}/grafana.md | 0 src/PaaS/{ => PostgreSQL}/pgadmin.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/PaaS/{ => PostgreSQL}/grafana.md (100%) rename src/PaaS/{ => PostgreSQL}/pgadmin.md (100%) diff --git a/src/PaaS/grafana.md b/src/PaaS/PostgreSQL/grafana.md similarity index 100% rename from src/PaaS/grafana.md rename to src/PaaS/PostgreSQL/grafana.md diff --git a/src/PaaS/pgadmin.md b/src/PaaS/PostgreSQL/pgadmin.md similarity index 100% rename from src/PaaS/pgadmin.md rename to src/PaaS/PostgreSQL/pgadmin.md From 9a665dc7ab71ade69b4507036d610871474cd91b Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Wed, 18 Mar 2026 14:57:51 +0300 Subject: [PATCH 11/14] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B0=20IPSEC=20?= =?UTF-8?q?=D0=B8=D0=B7=20cluster=5Fparametr=20=D0=B2=20=D0=BE=D1=82=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D1=83=D1=8E=20=D1=81=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=D1=8E,=20=D0=B2=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/PostgreSQL/IPSEC.md | 123 +++++++++++++++++++++ src/PaaS/PostgreSQL/cluster_parameter.md | 134 +---------------------- 2 files changed, 128 insertions(+), 129 deletions(-) create mode 100644 src/PaaS/PostgreSQL/IPSEC.md diff --git a/src/PaaS/PostgreSQL/IPSEC.md b/src/PaaS/PostgreSQL/IPSEC.md new file mode 100644 index 0000000..170a684 --- /dev/null +++ b/src/PaaS/PostgreSQL/IPSEC.md @@ -0,0 +1,123 @@ +## О разделе + +В данном разделе приведены параметры конфигурации IPsec-соединения, используемого для организации защищенного канала связи между инфраструктурой заказчика и кластерами. Материал описывает настройки этапов установки соединения и передачи данных, включая методы аутентификации, алгоритмы шифрования и хэширования, группы Диффи-Хеллмана, а также параметры времени жизни ключей. Часть параметров определяется клиентом при заказе услуги, часть является фиксированной и не подлежит изменению. + +## Параметры конфигурации IPSEC + +Ниже приведены основные параметры, задаваемые при развертывании кластера Kafka. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению. + +### Данные о конфигурации IPSEC + +Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. + +### Версия IKE (Internet Key Exchange) + +Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - **v1** и **v2**. Разница заключается в том, что **IKE v1** - более ранняя версия протокола. +**IKE v2** - более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. + +### Метод аутентификации + +Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта: _PSK_ (Pre-Shared Key) и _Certificate_ (Сертификат). +- **PSK (Pre-Shared Key)** - метод аутентификации, при котором используется заранее согласованный общий ключ; +- **Certificate** - аутентификация с использованием цифровых сертификатов. + +------ +## Этап 1 - установка защищенного соединения + +### Hash + +Определяет алгоритм хэширования для защиты управляющего канала. Данный параметр заполняется вручную из выпадающего списка следующего содержания: +- **SHA 1** - Формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием; +- **SHA 2 - 256** - Формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем; +- **SHA 2 - 384** - Длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности; +- **SHA 2 - 512** - Длина хэша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. + +### Шифрование + +Определяет алгоритм симметричного шифрования. Данный параметр заполняется вручную из выпадающего списка следующего содержания: +- **AES 128** - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач; +- **AES 256** - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU; +- **AES GCM 12** / **AES GCM 192** / **AES GCM 256** - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа. + +### DH Group - группа Деффи Хеллмана + +Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. +Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: +- **group 2**; +- **group 5**; +- **group 14**; +- **group 15**; +- **group 16**; +- **group 19**; +- **group 20**; +- **group 21**. + +### IKE Mode (только для IKEv1) + +Параметр IKE Mode определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. + +Доступны два режима: **Main** и **Aggressive**. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. +- Main Mode - является стандартным и более безопасным режимом работы IKEv1. +- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных) + +### Время жизни + +Определяет, как долго действуют согласованные ключи в рамках первой фазы. +- Рекомендуемое значение: 86400 секунд (24 часа); +- После истечения времени выполняется повторная генерация ключей. + +------ +## Этап 2 - передача данных + +Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. + +## Hash + +Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку, что данные не были изменены при передаче. Содержит такой же перечень элементов для выбора: +- **SHA 1**; +- **SHA 2 - 256**; +- **SHA 2 - 384**; +- **SHA 2 - 512**. + +## Шифрование + +Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: +- **AES 128**; +- **AES 256**; +- **AES GCM 128**; +- **AES GCM 192**; +- **AES GCM 256**. + +### PFS + +**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе. +Данный параметр представлен в виде чекбокса. При его включении: +- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman; +- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; +- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1. + +### DH Group - группа Деффи Хеллмана + +Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. + +Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: +- **group 2**; +- **group 5**; +- **group 14**; +- **group 15**; +- **group 16**; +- **group 19**; +- **group 20**; +- **group 21**. + +### Время жизни (в секундах) + +Определяет, как долго действуют согласованные ключи в рамках второй фазы. +- Рекомендуемое значение: 3600 секунд (1 час). +- После истечения времени выполняется повторная генерация ключей. + +### Префиксы локальной сети заказчика + +Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. diff --git a/src/PaaS/PostgreSQL/cluster_parameter.md b/src/PaaS/PostgreSQL/cluster_parameter.md index bf27193..40d310c 100644 --- a/src/PaaS/PostgreSQL/cluster_parameter.md +++ b/src/PaaS/PostgreSQL/cluster_parameter.md @@ -72,134 +72,10 @@ ::: -## Параметры конфигурации IPSEC +## Сетевой доступ к кластеру -Ниже приведены основные параметры, задаваемые при развёртывании кластера PostgreSQL. Часть параметров определяется клиентом на этапе заказа услуги, часть — фиксирована и не подлежит изменению. +Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы: +- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. раздел IPsec; +- **Interconnect** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnect. -### Данные о конфигурации IPSEC - -Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком. - -### Версия IKE (Internet Key Exchange) - -Версия IKE выбирается из выпадающего списка, который содержит два значения: - -- **IKE v1** — более ранняя версия протокола; -- **IKE v2** — более современная версия, обеспечивающая лучшую устойчивость соединения и более гибкую обработку ошибок. - -Рекомендуется использовать IKE v2, если оборудование заказчика это поддерживает. - -### Метод аутентификации - -Метод аутентификации выбирается из выпадающего списка, который содержит два варианта: - -- **PSK** (Pre-Shared Key) — аутентификация с использованием заранее согласованного общего ключа; -- **Certificate** (сертификат) — аутентификация с использованием цифровых сертификатов. - -## Этап 1 - установка защищенного соединения - -На данном этапе задаются параметры шифрования и аутентификации для защищённого канала связи. Все параметры выбираются вручную из выпадающих списков. - -### Алгоритм хэширования - -Определяет алгоритм хэширования для защиты управляющего канала. Параметр заполняется вручную из выпадающего списка: - -- **SHA1** — формирует хэш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием. -- **SHA2-256** — формирует хэш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью. -- **SHA2-384** — длина хэша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA2-256. Используется в средах с повышенными требованиями к безопасности. -- **SHA2-512** — длина хэша составляет 512 бит, обеспечивает самый высокий уровень стойкости из перечисленных, создает наибольшую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии. - -### Шифрование (Hash) - -Определяет алгоритм симметричного шифрования. Параметр заполняется вручную из выпадающего списка: - -AES 128 — использует 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач. -AES 256 — использует 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU. -AES GCM 128 / AES GCM 192 / AES GCM 256 — данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, рекомендуются в современных конфигурациях. Разница между алгоритмами — в длине ключа. - -### DH Group (группа Диффи — Хеллмана) - -Механизм Diffie-Hellman используется для безопасной генерации общего секретного ключа между сторонами туннеля без передачи этого ключа по сети. Чем выше номер группы и длина ключа, тем выше криптографическая стойкость соединения. - -Параметр заполняется вручную из выпадающего списка: - -group 2; -group 5; -group 14; -group 15; -group 16; -group 19; -group 20; -group 21. - -### IKE Mode (только для IKEv1) - -Параметр **IKE Mode** определяет способ установления соединения на этапе 1 при использовании протокола IKEv1. - -Доступны два режима: Main и Aggressive. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных. - -- **Main Mode** — стандартный и более безопасный режим работы IKEv1; -- **Aggressive Mode** — упрощённый и ускоренный режим установления соединения с более низким уровнем защиты данных. - -### Время жизни (Lifetime) - -Параметр определяет, как долго действуют согласованные ключи в рамках первой фазы. После истечения времени выполняется повторная генерация ключей. - -## Этап 2 - передача данных - -Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. - -### Алгоритм хэширование (Hash) - -Аналогично этапу 1, параметр Hash используется для защиты целостности передаваемых данных. Он обеспечивает проверку того, что данные не были изменены при передаче. Доступны следующие алгоритмы: - -- SHA1; -- SHA2-256; -- SHA2-384; -- SHA2-512. - -## Шифрование - -Этап 2 отвечает за шифрование пользовательского трафика. Это важнейший параметр, который защищает данные при их передаче по сети. Доступны следующие алгоритмы: - -- AES 128; -- AES 256; -- AES GCM 128; -- AES GCM 192; -- AES GCM 256. - -### PFS - -**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа Diffie-Hellman (DH) будет такая же как и на 1-й фазе. - -Данный параметр представлен в виде чекбокса. При его включении: - -- на этапе 2 выполняется дополнительный обмен ключами DH; -- для каждой новой IPsec-сессии формируется новый независимый криптографический секрет; -- ключи шифрования пользовательского трафика не зависят от ключей этапа 1. - -### DH Group (группа Диффи — Хеллмана) - -Группа DH определяет параметры обмена ключами между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена. - -Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений: - -- group 2; -- group 5; -- group 14; -- group 15; -- group 16; -- group 19; -- group 20; -- group 21. - -### Время жизни (Lifetime) - -Определяет, как долго действуют согласованные ключи в рамках второй фазы. - -- рекомендуемое значение: 3600 секунд (1 час); -- после истечения времени выполняется повторная генерация ключей. - -### Префиксы локальной сети заказчика - -Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через **IPsec-туннель**. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. \ No newline at end of file +Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности. \ No newline at end of file From e80065f53a0e5d0a20db1c5667496237fc64b45d Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Wed, 18 Mar 2026 15:03:47 +0300 Subject: [PATCH 12/14] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B0=20IPSEC=20=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA?= =?UTF-8?q?=D1=83=20paas,=20=D1=82=D0=BA=20=D0=BD=D0=B0=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=83=D1=8E=20=D1=81=D1=82=D0=B0=D1=82=D1=8C=D1=8E?= =?UTF-8?q?=20=D0=B1=D1=83=D0=B4=D1=83=D1=82=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=81=D1=8F=20=D0=BD=D0=B5=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BF=D0=BE=20=D0=B2=D0=BE=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=81=D0=B0=D0=BC=20=D0=BA=D0=B0=D1=81=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D0=BE=20PostgreSQL,=20=D0=BD=D0=BE=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20Apache=20Kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/{PostgreSQL => }/IPSEC.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/PaaS/{PostgreSQL => }/IPSEC.md (100%) diff --git a/src/PaaS/PostgreSQL/IPSEC.md b/src/PaaS/IPSEC.md similarity index 100% rename from src/PaaS/PostgreSQL/IPSEC.md rename to src/PaaS/IPSEC.md From 1b96efc894a1b8f7ca8ad6eebd0ae7b1700082d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 18 Mar 2026 16:12:49 +0300 Subject: [PATCH 13/14] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.vitepress/config.mts | 15 ++++++++------- src/PaaS/IPSEC.md | 6 ++---- src/PaaS/PostgreSQL/PostgreSQL-index.md | 6 ++++++ src/PaaS/index.md | 10 +++------- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index 7cc43eb..3535242 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -164,17 +164,18 @@ export default defineConfig({ { text: 'Начало работы в Cloud PostgreSQL', link: '/PaaS/index.md', }, - { text: 'Cloud PostgreSQL', link: '/PaaS/Postgresql-index.md', + { text: 'Cloud PostgreSQL', link: '/PaaS/PostgreSQL-index.md', collapsed: true, items: [ - {text: 'Обзор сервиса', link: '/PaaS/postgresql/about.md'}, - {text: 'Описание раздела', link: '/PaaS/postgresql/cluster_parameter.md'}, - {text: 'Общая схема подключения', link: '/PaaS/postgresql/connection.md'}, - {text: 'Создание сервиса', link: '/PaaS/postgresql/user_capabilities.md'}, + {text: 'Обзор сервиса', link: '/PaaS/PostgreSQL/about.md'}, + {text: 'Описание раздела', link: '/PaaS/PostgreSQL/cluster_parameter.md'}, + {text: 'Общая схема подключения', link: '/PaaS/PostgreSQL/connection.md'}, + {text: 'Создание сервиса', link: '/PaaS/postgPostgreSQLresql/user_capabilities.md'}, + {text: 'Веб-интерфейс pgAdmin', link: '/PaaS/PostgreSQL/pgadmin.md'}, + {text: 'Веб-интерфейс Grafana', link: '/PaaS/PostgreSQL/grafana.md'}, ], }, - {text: 'Веб-интерфейс pgAdmin', link: '/PaaS/pgadmin.md'}, - {text: 'Веб-интерфейс Grafana', link: '/PaaS/grafana.md'}, + {text: 'Параметры конфигурации IPSEC', link: '/PaaS/IPSEC.md'}, ], // '/billing/': [ diff --git a/src/PaaS/IPSEC.md b/src/PaaS/IPSEC.md index 170a684..9fd1646 100644 --- a/src/PaaS/IPSEC.md +++ b/src/PaaS/IPSEC.md @@ -21,7 +21,6 @@ - **PSK (Pre-Shared Key)** - метод аутентификации, при котором используется заранее согласованный общий ключ; - **Certificate** - аутентификация с использованием цифровых сертификатов. ------- ## Этап 1 - установка защищенного соединения ### Hash @@ -62,13 +61,12 @@ - Main Mode - является стандартным и более безопасным режимом работы IKEv1. - Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных) -### Время жизни +### Время жизни Определяет, как долго действуют согласованные ключи в рамках первой фазы. - Рекомендуемое значение: 86400 секунд (24 часа); - После истечения времени выполняется повторная генерация ключей. ------- ## Этап 2 - передача данных Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных. @@ -118,6 +116,6 @@ - Рекомендуемое значение: 3600 секунд (1 час). - После истечения времени выполняется повторная генерация ключей. -### Префиксы локальной сети заказчика +### Префиксы локальной сети заказчика Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель. Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов. diff --git a/src/PaaS/PostgreSQL/PostgreSQL-index.md b/src/PaaS/PostgreSQL/PostgreSQL-index.md index 3e5f030..5587c8c 100644 --- a/src/PaaS/PostgreSQL/PostgreSQL-index.md +++ b/src/PaaS/PostgreSQL/PostgreSQL-index.md @@ -12,6 +12,12 @@ section_links: - title: Создание сервиса link: /PaaS/PostgreSQL/user_capabilities.md description: Создание сервиса Cloud PostgreSQL + - title: Веб-интерфейс Grafana + link: /PaaS/PostgreSQL/grafana.md + description: Инструкция по работе с Grafana + - title: Веб-интерфейс PgAdmin + link: /PaaS/PostgreSQL/pgadmin.md + description: Инструкция по работе с PgAdmin --- # Cloud PostgreSQL diff --git a/src/PaaS/index.md b/src/PaaS/index.md index aabc1ca..cd60c86 100644 --- a/src/PaaS/index.md +++ b/src/PaaS/index.md @@ -1,12 +1,8 @@ --- section_links: - - title: Grafana - link: /PaaS/grafana.md - description: Мониторинг и визуализация метрик кластера - - title: PgAdmin - link: /PaaS/pgadmin.md - description: Веб‑интерфейс для администрирования PostgreSQL - + - title: IPSEC + link: /PaaS/IPSEC.md + description: Параметры конфигурации IPSEC --- # Cloud PostgreSQL From 1bb42c47310ed3596d13174dacc8fa1dd4165a5a Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Fri, 20 Mar 2026 12:16:18 +0300 Subject: [PATCH 14/14] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/PostgreSQL/cluster_parameter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PaaS/PostgreSQL/cluster_parameter.md b/src/PaaS/PostgreSQL/cluster_parameter.md index 40d310c..bf4a020 100644 --- a/src/PaaS/PostgreSQL/cluster_parameter.md +++ b/src/PaaS/PostgreSQL/cluster_parameter.md @@ -76,6 +76,6 @@ Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы: - **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. раздел IPsec; -- **Interconnect** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnect. +- **Interconnection** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnection. Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности. \ No newline at end of file