Руководство по установке#

В руководстве приведены инструкции по установке продукта Platform V Synapse File Exchange (FEX)

Системные требования#

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.

Категория ПО

Обязательность установки (да/нет)*

Наименование ПО

Версия

Продукт, функциональная совместимость с которым подтверждена**

Описание

Операционная система

Да

Альт СП

10.0

Рекомендовано

ОС контейнеров для запуска модулей компонента

Red Hat Enterprise Linux

8.5

Опционально

Да

SberLinux

8.8.1

Рекомендовано

ОС контейнеров для запуска модулей компонента

Сервис интеграции и оркестрации микросервисов в облаке

Да

Kubernetes

1.22.2

Рекомендовано

Платформа контейнеризации для запуска компонентов сервиса

Брокер сообщений

Да

Apache Kafka

3.1.0

Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел «Платформенные зависимости»

Средство обмена сообщениями между модулями компонента

Средство централизованного управления сетевым трафиком

Да

Istio

1.12

Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел «Платформенные зависимости»

Сервис интеграции микросервисов в облаке

Хранилище данных

Да

Любое хранилище данных, поддерживающее работу по S3 протоколу

Временное хранилище для файлов во время интеграции

Мониторинг

Нет

Prometheus

2.21

Опционально

Средства мониторинга приложения в процессе работы

Нет

Grafana

9.1

Опционально

Средства мониторинга приложения в процессе работы

JVM

Да

OpenJDK

11

Рекомендовано

Средство запуска приложений, написанных на языке Java

Secret Management System (SecMan)

Нет

HashiCorp Vault

1.11.0

Рекомендовано

Система управления ключами и сертификатами

Таблица. Системное программное обеспечение

Примечание:

*

  • Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).

  • Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).

**

  • Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.

  • Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.

Платформенные зависимости#

Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:

Наименование продукта

Код

Версия продукта

Код и наименование компонента

Обязательность установки (да/нет)***

Описание

Аналог других производителей****

Platform V SberLinux OS Server

SLO

8.8.1

INST Операционная система

Да

Программная среда, обеспечивающая работу приложения

Альт СП

Platform V Pangolin SE

PSQ

5.1 и выше

PSQL Pangolin

Да

СУБД

PostgreSQL 13.4 и выше

Platform V Corax

KFK

7.0 и выше

KFKA Corax

Нет

Брокер сообщений

Apache Kafka 3.1 и выше

Platform V Synapse Service Mesh

SSM

2.10

IGEG Граничный прокси

Нет

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

Istio

Platform V Monitor

OPM

4.1

LOGA Журналирование

Нет

Сервис для хранения лог-файлов

Любой сервис сбора записей о событиях, совместимый с fluent-bit

Platform V Monitor

OPM

4.1

MONA Объединенный мониторинг Unimon

Нет

Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения

Prometheus 2.21 и выше

Platform V Monitor

OPM

4.1

LGDB Abyss (Тенгри)

Нет

Сервис предназначен для приема, предварительной обработки, хранения метрик и логов

Platform V Audit SE

AUD

2.3

Аудит (AUDT)

Нет

Регистрация и долговременное хранение событий информационной безопасности из автоматизированной системы

Platform V Backend

#BD

4.3 и выше

OTTS Система аутентификации и авторизации межсервисного взаимодействия

Нет

Генерация одноразовых токенов для передачи файлов

Platform V IAM SE

IAM

1.6 и выше

AUTH IAM Proxy

Нет

Выполняет функции аутентификации/авторизации запросов. Реализует Policy Enforcement Point (PEP). Взаимодействует с провайдерами аутентификации/авторизации.

Platform V DropApp

K8S

1.1 и выше

K8SC K8S Core

Нет

Платформа оркестрации контейнеризованных приложений

Kubernetes

Таблица. Платформенные зависимости

Примечание:

***

  • Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).

  • Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).

**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».

Аппаратные требования#

Для установки компонента требуется следующая конфигурация аппаратного обеспечения:

Квота на проект: 2 CPU, 3000Mi RAM.

Название компонента

Кол-во pod на один элемент развертывания (deployment unit)

Квота на Pod

FTRF

1

1 CPU, 1000Mi RAM

FSGW

1

1000m CPU, 2000Mi RAM

FXIA

1

1000m, 1000Mi RAM

Для компонентов разворачиваемых на VM

Название компонента

CPU

RAM

HDD

TFSX

4

8 Гб

250 (150) Гб

CRDN

2

4 Гб

250 (150) Гб

XFTP

1

4 ГБ

10 (5) ГБ

Состав дистрибутива#

Состав дистрибутива приведен в Руководстве по установке в разделе «Состав дистрибутива» для каждого компонента, входящего в состав продукта.

Настройка окружения#

  • заведение bucket в S3 хранилище;

  • получения доступа к bucket в S3 хранилище;

  • настройка Kubernetes кластера для развертывания программного продукта.

  • настройка базы данных;

  • настройка брокера сообщений;

  • настройка Hazelcast;

  • настройка доступа к хранилищу секретов;

  • настройка доступа к аудиту

Подробное описание приведено в документации на компонент FTRF, FSGW, TFSX, CRDN, FXIA, XFTP

Установка#

Ручная установка#

Сборка дистрибутива продукт FEX#

Настройка параметров для распаковки продукт FEX#

Параметры требуются для настроек координат загрузки/выгрузки продукта, а так же для мэпинга, пересборки и перекладки компонентов продукта FEX. Настройки хранятся по пути resources/fex/ в yaml формате.

Допускается создание произвольного файла с конфигурацией параметров, если есть такая необходимость. Структура файла с произвольной конфигурацией должна соответствовать примерам: fex-merger.config.yaml.

Описание настроек:

solution.download.url - Nexus репозиторий для загрузки продукта FEX
solution.download.groupId - groupId в Nexus репозитории для загрузки продукта FEX
solution.download.artifactId - artifactId в Nexus репозитории для загрузки продукта FEX
solution.download.creds -  СredentialID для доступа к репозиторию Nexus, для загрузки продукта FEX

solution.upload.url -  Nexus репозиторий для выгрузки пересобранного продукта FEX
solution.upload.groupId - groupId в Nexus репозитории для выгрузки пересобранного продукта FEX
solution.upload.artifactId - artifactId в Nexus репозитории для выгрузки пересобранного продукта FEX
solution.upload.creds -  СredentialID для доступа к репозиторию Nexus, для выгрузки пересобранного продукта FEX

fpItems - Список элементов компонент дистрибутива для пересборки контейнеров. 
  name - имя элемента пересборки. Имя элемента можно найти в дистрибутиве компонента в папке package/docker, каждая папка является отдельным элементом для пересборки. Имя является регистрозависимым параметром и должно точно соответствовать имени папки.
  dockerRegistryHost -  Host Name репозитория Docker Registry
  dockerRegistryRepo -  Название репозитория Docker Registry
  dockerRegistryCred -  СredentialID для доступа к репозиторию Docker Registry
  dockerRegistryCI - Путь размещения образа
  dockerRegistryProject - Название проекта для размещения образа. Финальный путь будет определяться как dockerRegistryCI/dockerRegistryProject
  dockerRegistryImageName - Название docker образа
  dockerRegistryBaseImageName - Ссылка на базовый образ для пересборки

components - Список компонентов дистрибутива. 
  name - имя компоненты
  patern - паттерн для поиска компоненты в дистрибутиве. Патерн будет применятся к каждому файлу в дистрибутива. Например если компонент в составе дистрибутива называется 'ftrfdev-bin-2.0.7-7-distrib.zip' , то можно использовать паттерн 'ftrfdev' для индитификации данного компонента.
  rebuild - Значения: enabled/disabled. Пересобирать docker образы компонента или нет
  nexusUpload - Значения: enabled/disabled. Выгружать пересобранную компоненту в отдельный репозиторий или нет
  url -  Nexus репозиторий для выгрузки пересобранной компоненты
  groupId - groupId в Nexus репозитории для выгрузки пересобранной компоненты
  artifactId - artifactId в Nexus репозитории для выгрузки пересобранной компоненты
  creds -  redentialID для доступа к репозиторию Nexus, для выгрузки пересобранной компоненты
Создание Jenkins Job для распаковки продукта FEX#
  1. Создать репозиторий в BitBucket и положить в него содержимое архива.

  2. Отредактировать конфигурацию resources/fex/fex-merger.config.yaml, либо создать новую (см п. I).

  3. Создать в Jenkins Job типа Pipeline.

  4. Выбрать 'Это - параметризованная сборка'.

  5. Добавить параметр Jenkins Job типа String с именем VERSION.

  6. В случае если имя вашей jenkins Node отличается от 'clearAgent', необходимо добавить параметр Jenkins Job типа String с именем NODE.

  7. В случае если вы создали свой конфигурационный файл (см п. I), необходимо добавить параметр jenkins Job типа String с именем CONFIG_FILE указав имя вашего файла с конфигурацией по умолчанию.

  8. В поле 'Pipeline->Definition' выбрать пункт 'Pipeline script from SCM'.

  9. В поле 'SCM' выбрать пункт 'git'.

  10. В поле 'Repository URL' указать ссылку на ваш репозиторий, созданный в п.1.

  11. В поле 'Credentials' указать CredentialID для доступа к репозиторию.

  12. В поле 'Branch Specifier (blank for 'any')' указать ветку в репозитории из п.1.

  13. В поле 'Script Path' указать 'pipelines/fex/fex-merger.groovy'.

  14. Сохранить Jenkins Job.

Запуск Jenkins Job для распаковки продукта FEX#
  1. В поле VERSION - указать полную версию дистрибутива продукта (включая BuildNumber).

  2. При наличии поля NODE - указать имя желаемой Jenkins Node.

  3. Запустить Jenkins Job.

Результат работы Jenkins Job#

Результатом работы будет:

  1. Пересобранный дистрибутив продукта FEX, выгруженный в нексус по координатам указанным в параметрах solution.upload.*

  2. Пересобранные компоненты продукта FEX, выгруженные в нексус по координатам указанным в параметрах components[name].*, в случае если это разрешено параметром components[name].nexusUpload.

  3. Пересобранные Docker образы, указанные в параметрах fpItems[name].* . В случае если это разрешено параметром components[name].rebuild.

  4. При успешном завершении работы, в теле Jenkins Job будет опубликована таблица с информации о сборках.

Установка компонентов входящих программного продукта#

Установка программного продукта осуществляется в рамках индивидуальной установки каждого компонента, входящего в состав поставки. Порядок установки компонентов продукта не принципиален и может выполняться на усмотрение потребителей.

Параметры и шаги выполнения установки компонентов описаны в документации каждого компонента, входящего в состав продукта (документ Руководство по установке).

Чек-лист валидации установки#

Для валидации установки воспользуйтесь чек-листами, приведенными в Руководстве по установке в разделе «Чек-лист валидации установки» на соответствующие компоненты.

Проверка работоспособности#

Для валидации установки воспользуйтесь чек-листами, приведенными в Руководстве по установке в разделе «Проверка работоспособности» на соответствующие компоненты.

Обновление#

Инструкция по обновлению описана в документации каждого компонента, входящего в состав программного продукта. Смотрите Руководство по установке, раздел «Обновление».

Откат#

Инструкция по откату описана в документации каждого компонента, входящего в состав программного продукта. Смотрите Руководство по установке, раздел «Откат».

Удаление#

Инструкции по удалению приведены в документации каждого компонента, входящего в состав программного продукта. Смотрите Руководство по установке, раздел «Удаление».

Часто встречающиеся проблемы и пути их устранения#

Компонент FTRF#

Проблема

Последствия

Решение

1. Появляются проблемы при коммуникации компонентов FTRF у АС Инициатора и АС Получателя или проблемы при коммуникации компонента с использующей его системой

Невозможна передача файлов, либо пользователь не получает уведомления и поступлении новых файлов

Проверить правильность указанных в настройках параметров file.transfer.externalPort, file.transfer.internalPort, file.transfer.primaryContainerPort, file.transfer.primaryContainerHost. Проверить настройки Istio Ingress (Route, Service, VirtualService, Gateway). Проверить логи Ingress/Egress в режиме debug на наличие ошибки tls handshake. Для изменения режима логирования можно воспользоваться командой curl -X POST http://localhost:15000/logging?level=debug из терминала Pod. В случае такой ошибки обновить TLS сертификаты

2. Проблемы с S3-совместимым хранилищем

Передача файлов невозможна

Убедиться, что для пользователя (access-key которого указан в конфигурации) разрешены операции чтения и записи в bucket использующемся в интеграционном взаимодействии. Убедиться, что bucket не переполнен и передаваемые файлы занимают не больше, чем свободное место в bucket

3. Не работает readiness, liveness probes

Сбой при старте контейнера FTRF

Проверить активирование данного функционала в конфигурационном файле ftrf-config.yml раздел application.properties management.endpoint.health.probes.enabled=true management.health.livenessState.enabled=truemanagement.health.readinessState.enabled=true

4. Записи аудита не отравляются в Platform V Audit

Отсутствие истории событий аудита

Проверить правильность параметров в конфигурационном файле с префиксом audit

5. Возникают трудности при взаимодействии с OTT-сервером. Не получается получить токен. На транспортном уровне OTT происходит ошибка: пример 1, пример 2. Cрабатывает предохранитель от чрезмерной нагрузки на сервер

Не возможна передача данных получателю

Обратитесь к команде поддержки ОТТ, чтобы узнать время ответа сервера ОТТ. Затем скорректируйте параметры клиентской библиотеки ОТТ, установив значения для параметров client-params.ott.service.client.transport.timeout и client-params.ott.service.client.balancer.timeout

6. Ошибка чтения сертификатов: пример

Не запускается FTRF, падает при чтении файлов сертификатов полученых через vaultAgent

Проверить параметры получения приватного ключа через аннотации vaultAgent, формат ключа должен быть private_key_format=pkcs8

7. Ошибка system is not authorized

Не возможна передача данных получателю

Проверить лог работы FTRF, убедиться что нет ошибок обращения к ОТТ. При наличии ошибок обратиться к пункту 5 списка ошибок

Компонент FSGW#

  • проблемы с S3-совместимым хранилищем:

    • решение: Убедиться что для пользователя (access-key которого указан в конфигурации) разрешены операции чтения и записи в bucket, использующемся в интеграционном взаимодействии. Убедиться, что Bucket не переполнен и передаваемые файлы занимают не больше, чем свободное место в bucket.

  • не работают пробы на readiness и liveness.

    • решение: Проверить, что данный функционал активирован в конфигурационном файле:

      management:
        health:
          livenessState:
            enabled: true
          readinessState:
            enabled: true
        endpoint:
          health:
            probes:
              enabled: true
      

Компонент TFSX#

  • Нехватка места на файловой системе:

    • Решение: Исправляется путем расширения или чисткой дампа/логов/бэкапа

  • Отсутствие прав на файлы для пользователя tfs99usr:

    • Решение: Предоставление нужных прав на файлы и подпапки

  • Порт запуска ПО занят:

    • Решение: Проверить не запущена ли другая версия ПО ядра компонента TFSX или найти другую программу, использующую данный порт

  • Ошибка при запуске ядра Starting error, Application is stopped, Re-run application using the argument 'debug' switch to enable debug logging:

    • Решение: Использовать команду запуска с параметром debug для определения ошибок запуска в файле логов с наименование по умолчанию TransferModule_StartLog.log

  • Не подгружается файл конфигурации:

    • Решение: Проверить наличие файла конфигурации в директории, куда выгружает его конфиг модуль, и проверить наличие этого же файла в директории resources node ядра. Сравнить размеры и параметры, при необходимости удалить файл из resources и перезагрузить ядро для повторной загрузки файла из директории конфиг модуля.

Компонент FXIA#

Проблема

Последствия

Решение

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Невозможность подключиться к ресурсу

Добавить корректный tls сертификат в хранилище сертификатов. Убедиться, что его CN совпадает с адресом файловго ресурса.

Компонент CRDN#

Проблема

Последствия

Решение

Невозможность запуска компонента из-за превышения количества подключений к базе

Не запускается компонент

проверить количество подключений к базе данных, увеличить количество подключений; задать ограничение по количеству создаваемых подключений к базе компонентом CRDN параметром spring.datasource.hikari.maximum-pool-size: 2

Ошибка: Client network socket disconnected before secure TLS connection was established

Не запускается компонент

Выбранная версия TLS и cipher suite не соответствуют. Поменять версию TLS или cipher suite

Компонент XFTP#

Проблемы с S3-совместимым хранилищем. Решение: убедиться, что для пользователя (access-key которого указан в конфигурации) разрешены операции чтения и записи в bucket, использующемся в интеграционном взаимодействии. Убедиться, что bucket не переполнен и передаваемые файлы занимают не больше, чем свободное место в bucket.