ELMA365 On-premises > Настройка / Создание и использование внешних баз данных

Создание и использование внешних баз данных

При установке система дает возможность указать строки соединения с внешними хранилищами. Это обязательное требование для полноценного построения отказоустойчивой архитектуры системы. Скрипт установки запрашивает данные для соединения с серверами:

  • PostgreSQL (поддерживается версия 10);
  • MongoDB (поддерживается версия 3.6);
  • S3.

При установке ELMA365 в свой kubernetes кластер с помощью helm чарта также есть возможность использовать свои:

  • MongoDB (поддерживается версия 3.6);
  • Redis;
  • RabbitMQ.

начало внимание

В СУБД PostgreSQL и MongoDB нужно создать новую базу данных и выдать пользователю полные права на эту базу.

конец внимание

Обратите внимание на настройки доступа в конфигурациях самих серверов.

В строках соединения нужно обязательно указывать локальный адрес сервера (не указывайте localhost или 127.0.0.1), даже если сервер СУБД установлен на том же сервере.

 

PostgreSQL

Основные моменты, которые нужно учесть при настройке базы данных:

  1. Создать отдельного пользователя для работы с БД. Имя пользователя и пароль ниже приведены для примера.

CREATE ROLE elma365 WITH login password 'SecretPassword';

  1. Выдать доступ этому пользователю для соединения с внешним сервером.
  2. Создать отдельную базу данных и назначить выделенного пользователя её владельцем. Нельзя использовать существующую базу, т.к. система создаёт таблицы и схемы.

CREATE DATABASE elma365 WITH OWNER elma365;

  1. Включить в базе требуемые расширения. Для этого потребуются права суперпользователя.

CREATE EXTENSION "uuid-ossp";
CREATE EXTENSION pg_trgm;

При восстановлении данных с использованием elma365ctl restore необходимо:

  1. Удалить всю базу данных с помощью команды:

DROP DATABASE elma365;

  1. Создать базу и назначить выделенного пользователя её владельцем.
  2. Включить в базе требуемые расширения. Для этого потребуются права суперпользователя.

Подробнее о том, как с помощью командной строки установить СУБД и выполнить эти команды, вы можете прочитать в статье «PostgreSQL».

MongoDB

Основные моменты, которые нужно учесть при использовании внешнего сервера MongoDB:

  1. Создать отдельную базу для системы.

use elma365

  1. Создать отдельного пользователя для работы с БД. Имя пользователя и пароль ниже приведены для примера.

db.createUser({user:'elma365', pwd:'SecretPassword', roles:["readWrite"]})

  1. Выдать доступ этому пользователю для соединения с внешним сервером.
  2. Включить безопасный доступ к серверу MongoDB, если он находится в открытой зоне.

При восстановлении данных дополнительных операций не требуется.

Подробнее о том как с помощью командной строки установить сервер и выполнить эти команды вы можете прочитать в статье «MongoDB».

Обратите внимание, поддерживается MongoDB версии 3.6.

Хранилище S3

Предпочтительно использовать метод PUT для загрузки файлов.

Для повышения безопасности сервер S3 может быть изолирован в локальной сети организации.

В этом случае пользователи обращаются к нему через прокси-сервер. Чтобы включить прокси-сервер, при установке ELMA365 ответьте утвердительно на запрос: Enable proxying connection to external S3 through ELMA365?

Важно: для корректной работы через прокси-сервер имя области хранения (bucket) в хранилище S3 обязательно должно быть s3elma365.

 

Redis

  • Требуется версия 5.
  • Установка на Ubuntu 20.04:

apt install redis-server

Для настройки Redis:

  1. Необходимо разрешить подключение к серверу Redis в конфигурационных файлах.
  2. В /etc/redis/redis.conf добавить IP адрес машины (например 10.0.1.1) и перезапустить redis-server:

bind 127.0.0.1 10.0.1.1 ::1

  1. Строка подключения будет выглядеть так:

redis://<redis-server-address>:6379/0

RabbitMQ

  • Требуется версия 3.8.
  • Установка на Ubuntu 20.04

apt install rabbitmq-server

Для настройки RabbitMQ нужно выполнить следующие действия:

  1. Разрешить в конфигурационных файлах подключение к RabbitMQ.
  2. Для управления можно включить плагин: rabbitmq-plugins enable rabbitmq_management.
  3. Обязательно нужно добавить vhost и дать пользователю доступ к нему, например:

rabbitmqctl add_vhost elma365vhost
rabbitmqctl set_permissions -p elma365vhost elma365user ".*" ".*" ".*"

  1. Эти реквизиты затем нужно указать в строке подключения:

amqp://elma365user:elma365password@<rabbitmq-server-address>:5672/elma365vhost

Масштабирование и отказоустойчивость внешних хранилищ

Масштабирование и отказоустойчивость внешних хранилищ не связаны с настройками системы и должны конфигурироваться и контролироваться системным администратором самостоятельно.

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас