Рекомендуемые технические и программные средства
Рекомендация основана на использовании витрины в режиме стандартной рабочей нагрузки на тестовом стенде.
Следует учитывать, что невозможно дать универсальной рекомендации для развертывания витрины, т.к. вариантов конфигурации оборудования, характера нагрузки и других факторов может быть очень много. Предварительный расчет параметров оборудования на этапе внедрения для каждой организации должен быть рассчитан индивидуально. Советуем установить витрину с приведенными ниже рекомендациями на тестовом стенде для того, чтобы определить оптимальную конфигурацию для ваших сценариев работы.
Рекомендуем выполнить следующее:
- продумайте сценарии работы с витриной, необходимые для достижения ваших целей;
- установите витрину на тестовом стенде с рекомендуемыми техническими характеристиками;
- создайте структуру витрины (подробнее в статье Как загрузить схемы и данные в витрину данных Лайт через CSV);
- подготовьте тестовые данные для загрузки и определите количество загружаемых данных;
- в процессе загрузки данных проведите измерение ключевых параметров нагрузки серверного оборудования;
- линейно экстраполируйте эти данные на целевую витрину, получив таким образом загруженность целевого оборудования витрины;
- выберете оборудование, которое будет соответствовать нагрузке для ваших задач.
Ниже приведены рекомендуемые параметры тестового стенда.
Требования к серверному оборудованию:
Требования |
Минимальные |
Рекомендуемые |
Процессор (CPU) |
4 ядра |
10 ядер |
Оперативная память (RAM) |
16 Гб |
128 Гб |
Жесткий диск (HDD) |
100 Гб |
500 Гб |
Минимальный состав системного ПО:
Название |
Версия |
Описание |
Одна из следующих ОС: - CentOS 7.9 (далее - CentOS); - РЕД ОС версии 7.2 (далее - РЕД ОС); - Альт Сервер 8 СП (далее - АЛЬТ ОС) |
- CentOS - 7.9 - РЕД ОС версии 7.2; - Альт Сервер 8 СП |
Совместимые операционные системы |
Docker |
20.10.2 |
Программное обеспечение для автоматизации развёртывания и управления приложениями |
Требования к каналам связи
К каналам связи сервера, на котором будет установлена витрина, предъявляются следующие требования:
- пропускная способность 100 Мбит/сек с протоколами TCP/IP и UDP;
- отсутствие ПО, блокирующего или замедляющего трафик.
К каналам связи, используемым для взаимодействия с клиентскими сетями Ведомства, предъявляются следующие требования - пропускная способность 10 Гбит/сек с протоколами TCP/IP и UDP.
Необходимо учитывать процент свободных ресурсов оборудования и пиковые нагрузки.Предварительные действия
Установка витрины производится в закрытом контуре (без необходимости доступа к сети Интернет).
1. Установка операционной системы
Необходимо установить выбранную Операционную систему из списка совместимых с витриной и обновить локальную базу пакетов выбранной ОС.
2. Создание пользователя
Для установки витрины рекомендуется создать отдельного пользователя и установить для него пароль, для этого выполните команды:
sudo useradd datamart sudo password for user: sudo passwd datamart sudo password for user: Changing password for user datamart. New password: Retype new password: passwd: all authentication tokens updated successfully |
3. Отключение пароля
Чтобы отключить пароль sudo для пользователя datamart, надо добавить в настройки (пользователя или группы) директиву NOPASSWD. Для этого последовательно выполните команду:
sudo visudo |
В открывшемся конфигурационном файле, с помощью команд редактора vi
Для CentOS и РЕД ОС отредактируйте следующие записи:
datamart ALL=(ALL) NOPASSWD: ALL |
Для Альт ОС отредактируйте следующие записи:
# uncomment line
WHEEL_USERS ALL=(ALL) NOPASSWD: ALL |
Сохраните изменения и закройте файл.
Чтобы добавить пользователя в группу администраторов, у которых есть права выполнения команды sudo, выполните следующую команду:
sudo usermod -aG wheel datamart |
Для проверки вы можете переключиться в учетную запись datamart и вывести список содержимого директории /root, которое обычно доступно только для пользователя root user:
su datamart
Password: |
5. Отключение межсетевого экрана
Для корректной установки потребуется отключить службу FirewallD операционной системы CentOS.
Что просмотреть текущий статус работы приложения используйте команду firewall-cmd:
sudo firewall-cmd --state |
В случае, если служба FirewallD запущена, команда выше выведет следующее сообщение:
running |
Вы можете временно остановить службу FirewallD для этого выполните следующую команду:
sudo systemctl stop firewalld |
Следует учитывать, что данная команда только временно отключит службу, при последующей перезагрузке служба FirewallD снова будет запущена. Чтобы полностью отключить службу выполните команды, описанные ниже.
Остановите службу:
sudo systemctl stop firewalld |
Отключите автоматический запуск службы FirewallD при загрузке операционной системы:
sudo systemctl disable firewalld |
После отключения проверьте, что статус службы изменился на not running, для этого выполните команду:
sudo firewall-cmd --state
not running |
Для Альт ОС – по умолчанию выключен. Никаких действий не требуется.
Только для CentOS и RedOS!
Для корректной установки необходимо отключить SELinux, для этого выполните следующие действия:- Проверьте параметры запуска SELinux при загрузке системы. Для этого выполните следующую команду:
cat /etc/selinux/config |
- Если параметр SELINUX имеет значение enforcing, отключите запуск SELinux при загрузке системы. Для этого следует в файле /etc/selinux/config указать значение SELINUX=disabled и перезагрузите сервер. SELinux будет отключен.
sudo vi /etc/selinux/config |
- Проверьте, что служба отключена. Для этого выполните команду:
sestatus |
В ответ вы должны получить:
SELinux status: disabled |
7. Выбор часового пояса
- Для CentOS и RedOS
Проверьте, что установлен нужный часовой пояс. В нашем случае на команду timedatectlдолжна выводиться строка Time zone: Europe/Moscow (MSK, +0300).
Пример команды:
timedatectl |
Пример ответа:
Local time: Mon 2021-12-20 12:06:39 MSK Universal time: Mon 2021-12-20 09:06:39 UTC RTC time: Mon 2021-12-20 09:06:49 Time zone: Europe/Moscow (MSK, +0300) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a |
Если результат отличается, укажите соответствующий местоположению сервера часовой пояс.
Пример команды для выбора московского часового пояса:
sudo timedatectl set-timezone Europe/Moscow |
- Для Альт ОС
Пример команды для выбора московского часового пояса:
sudo apt-get install tzdata
sudo timedatectl set-timezone Europe/Moscow |
8. Подключение к серверу через SSH-клиент PuTTY
Настройку ssh-подключения к серверу можно выполнить, используя клиент удалённого доступа - PuTTY.
9. Создание SSH-ключей
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Для подключения Ansible к серверу по протоколу SSH необходимо создать ssh-ключи.
Для аутентификации пользователя на сервере используются два ключа: приватный и публичный.
Чтобы сгенерировать SSH-ключи для операционной системы Linux, выполните следующие действия:
- Откройте терминал на вашем компьютере и выполните команду:
ssh-keygen -t rsa |
Следует оставить все значения по умолчанию.
Если команда ssh-keygen не найдена, установите пакет openssh.
- После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя id_rsa, ключи будут созданы в директории ~/.ssh.
Публичная часть ключа будет сохранена в файле с названием <имя_ключа>.pub.
Будет выведено следующее сообщение:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/datamart/.ssh/id_rsa). |
- Нажмите клавишу Enter. После этого ключ будет сохранен в указанную директорию по умолчанию. Далее вам будет предложено ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать Enter.
На запрос указать кодовое слово, не вводя его нажмите клавишу Enter.
Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ `` в файлах ``id_rsa и id_rsa.pub.
10. Копирование ssh-ключей на сервер
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Для копирования ssh-ключей в список разрешенных ключей выполните команды:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys |
11. Копирование архива дистрибутива Типового ПО витрины данных
Для загрузки на сервер файла с архивом дистрибутива Типового ПО витрины данных используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора (datamart) созданной при установке ОС. Загрузите файл с архивом дистрибутива в домашнюю директорию администратора ( ~/ ).
- Подключитесь по SSH к серверу, используя логин и пароль учетной записи администратора.
- Переместите файл с архивом дистрибутива в домашнюю директорию пользователя datamart командой:
mv ~/dtm-lite-1.6.0.tgz /home/datamart/ |
где
- dtm-lite-1.6.0.tgz - название архива дистрибутива;
- datamart - имя пользователя.
Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии дистрибутива Типового ПО витрины данных.12. Распаковка архива дистрибутива Типового ПО витрины данных
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Чтобы распаковать архив дистрибутива, выполните команду:
tar -xzvf dtm-lite-1.6.0.tgz |
Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии дистрибутива Типового ПО витрины данных.
- Установка Docker в CentOS
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Полную инструкцию по установке Docker можно просмотреть на официальном сайте разработчиков: https://docs.docker.com/engine/install/centos/.
Приведем описание основных шагов инструкции.
Проверяем, установлен ли Docker командой:
sudo systemctl status docker |
Если ответ содержит сообщение "Unit docker.service could not be found", значит Docker не найден и нужно его установить. Для установки Docker без использования доступа к интернет выполните команду:
sudo yum install rpms/docker/CentOS/7.9/*.rpm |
Добавляем Docker в автозагрузку:
sudo systemctl enable docker |
Запускаем Docker:
sudo systemctl start docker |
Проверяем работоспособность Docker командой:
sudo systemctl status docker |
- Установка Docker в RedOS
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Для установки Docker без использования доступа к интернет выполните команду:
sudo yum install rpms/docker/RedOS/7.2/*.rpm |
Добавляем Docker в автозагрузку:
sudo systemctl enable docker |
Запускаем Docker:
sudo systemctl start docker |
- Установка Docker в Альт ОС
Действия этого раздела необходимо выполнять под созданной учетной записью datamart. Для переключения на учетную запись datamart выполните команду:
sudo su - datamart |
Установить docker можно следующей командой:
sudo apt-get install docker-ce |
Удалить сервис containerd:
sudo rm -f /lib/systemd/system/containerd.service |
Затем необходимо запустить соответствующую службу:
sudo systemctl unmask docker sudo systemctl start docker |
14. Установка библиотеки python-docker-py
- Для CentOS и РЕД ОС
sudo yum install rpms/python/CentOS/7.9/*.rpm |
- Для Альт ОС
sudo apt-get install python3-module-docker |
15. Настройка логирования в Docker
- Для CentOS и РЕД ОС
{
"log-opts": { |
где
- max-file - ограничение по количеству файлов (настройки ротации). Максимальное количество файлов журнала, которые могут быть созданы. Если при просмотре журналов создаются лишние файлы, самый старый файл удаляется. Действует только тогда, когда max-size (см. ниже) также установлен. Положительное целое число. По умолчанию 1.
- max-size - устанавливает ограничение по размеру лог-файла (k, m или g). По умолчанию - 1 (неограниченно).- Для Альт ОС
Выполните команду:
sudo sed -i 's/journald/json-file/' /etc/docker/daemon.json |
16. Перезапуск Docker
Для применения настроек, выполненных на предыдущем шаге, необходимо перезапустите Docker
- Для CentOS и РЕД ОС
sudo systemctl restart docker |
- Для Альт ОС
Выполните команду:
sudo systemctl restart docker |
Далее, нужно добавить пользователя datamart в группу docker. Для этого подключитесь к серверу по ssh (например, через Putty) и выполните команду:
sudo usermod -aG docker datamart |
Внимание! Для применения настроек изменения группы выполните повторную авторизацию под пользователем datamart.
18. Настройка Ansible
sudo su - datamart |
Для загрузки docker-образа выполните команду:
docker image load -i images/ansible-2.9-centos-7.tar |
Чтобы создать alias для вызова Ansible выполните команду:
echo "alias docker-ansible-cmd='docker run --rm -it -v $(pwd)/ansible:/ansible -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --workdir=/ansible cr.yandex/crpl8ogf99r0eaq13vkd/ansible:2.9-centos-7 '" >> .bashrc . .bashrc |
Далее нужно перечитать конфигурационный файл, чтобы применить созданные alias. для этого выполните команду:
source .bashrc |
Чтобы проверить установку Ansible в контейнере, выполните команду Ansible, позволяющую вывести номер версии:
docker-ansible-cmd ansible --version |