Внешние сервисы и интеграции
Внешний кластер PostgreSQL
Использование внешней БД — считается кастомизацией, и не входит в стандартное описание и процесс установки.
Для того, чтобы использовать уже существующий сервис PostgreSQL при установке Sage, добавьте в инвентарь группу external, в которой будет внешний PostgreSQL.
Файл clans/{{ clan }}/{{ env }}/{{ dc }}/hosts.yml:
external:
children:
postgres:
Поддерживается PostgreSQL 13.
Требованиям к внешней PostgreSQL
Для работы с внешней СУБД PostgreSQL требуется предварительная настройка: создание баз данных, схем и пользователей, а также назначение необходимых прав доступа. Инсталлятор умеет создавать всё необходимое в случае, если используемый пользователь обладает в БД правами суперпользователя.
В случае, если учётная запись Sage не обладает правами суперпользователя, все объекты инфраструктуры необходимо создать вручную.
-
Создайте следующие БД:
sage_grafanasage_pagersage_sauronsage_slasage_logs_to_metricsservice_mapdp_connectorotel_agentsspirit_kratosspirit_hydraspirit_tenant_managerspirit_iam_jwksage_mcckeycloak
CREATE DATABASE {{ db_name }}; -
Создайте пользователей, обладающих теми же именами, что и БД, созданные на предыдущем этапе. Пользователи должны обладать полными правами в соответствующей БД.
CREATE USER {{ username }} WITH PASSWORD '{{ password }}';GRANT ALL PRIVILEGES ON DATABASE {{ db_name }} TO {{ username }}; -
Создайте схему
sageв следующих БД, назначив её владельцем соответствующего пользователя:sage_grafanasage_pagersage_sauronsage_slasage_logs_to_metricssage_mccdp_connectorotel_agentsservice_map
CREATE SCHEMA sage;ALTER SCHEMA sage OWNER TO {{ username }}; -
Создайте схему
spiritв следующих БД, назначив её владельцем соответствующего пользователя:spirit_kratosspirit_hydraspirit_tenant_managerspirit_iam_jwk
CREATE SCHEMA spirit;ALTER SCHEMA spirit OWNER TO {{ username }}; -
Создайте схему
schedulerв БДsage_pager:CREATE SCHEMA scheduler; -
Создайте схему
hangfireв БДsage_mcc:CREATE SCHEMA hangfire; -
Создайте схему
sage_dp_connectorв БДdp_connector:CREATE SCHEMA sage_dp_connector; -
Добавьте следующие расширения каждой БД в схемах
sage,spirit,sage_dp_connector:btree_ginpg_trgmpgcryptohstoreuuid-ossp
CREATE EXTENSION IF NOT EXISTS {{ extension }} SCHEMA sage;или
CREATE EXTENSION IF NOT EXISTS {{ extension }} SCHEMA spirit;или
CREATE EXTENSION IF NOT EXISTS {{ extension }} SCHEMA sage_dp_connector; -
Установите
search_pathдля пользователей в значениеsage,publicилиspirit,public, в зависимости от созданной схемы в БД.ВАЖНОНе выполняйте это действие для пользователя
keycloak!ALTER ROLE {{ username }} SET search_path = sage,public;или
ALTER ROLE {{ username }} SET search_path = spirit,public;
Пример конфигурации
Сервис postgres является членом группы external, а в качестве хоста для него используется external-postgres, где находится требуемая версия PostgreSQL.
Файл clans/{{ clan }}/{{ env }}/{{ dc }}/hosts.yml:
postgres:
hosts:
external-postgres:
external:
children:
postgres:
Зоны доступности Opensearch
Для чтения логов из другого ДЦ добавьте в инвентарь группы:
opensearch_proxy— содержит имена хостов, на которых будет развернут клиентopensearch_proxy_single_node— если клиент нужно развернуть только на одном хосте
Файл clans/{{ clan }}/{{ env }}/{{ dc }}/hosts.yml:
opensearch_proxy:
hosts:
es-client-[0:1].remote.domain:
Зоны доступности VictoriaMetrics
Для чтения метрик из другого окружения добавьте в инвентарь группу victoriametrics_remote, которая содержит имена хостов из группы victoriametrics_select другого окружения.
Также укажите имя удаленного окружения.
Файл clans/{{ clan }}/{{ env }}/{{ dc }}/hosts.yml:
victoriametrics_remote:
hosts:
external-victoriametrics-select-[0:2].example.com:
Файл clans/{{ clan }}/{{ env }}/{{ dc }}/group_vars/sage/victoriametrics.yml:
victoriametrics_remote_env: remote_env