Настройка интеграции с сервисными системами#

Ниже описана процедура интеграции с рекомендованным АО «СберТех» продуктами:

  • Platform V Audit SE (компонент AUDT);

  • Platform V Monitor (компонент LOGA);

  • Platform V Synapse Event Transfer Service (компонент EVTA);

  • Platform V Synapse Streaming Event Processing (компонент EVPT).

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

Элементы дистрибутива, содержащие файлы скриптов развертывания и управления, описаны в разделе Состав дистрибутива.

Настройка интеграции со смежными сервисами происходит в процессе конфигурации параметров в файле vars.yml. Подробнее в разделе Пример заполненного файла vars.yml.

Интеграция с компонентом SMBX продукта Platform V Synapse Messaging напрямую не осуществляется. При необходимости, можно настроить взаимодействие с компонентом SMBX через компонент EVTA.

1. Интеграция с компонентом AUDT продукта Platform V Audit SE#

Настройка интеграции компонента EVPC с компонентом AUDT продукта Platform V Audit SE производится в файле vars.yml, блок настроек:

epf:
  audit: # блок настроек аудита
   service:
#    type: log # Вариант отправки событий аудита (http или log)
      type: http # Вариант отправки событий аудита (http или log)
      url.base: "http://ext-http.audit.example.ru"
      url.event.path: "/v1/event"
      url.metamodel.path: "/v1/metamodel"
      ssl.enabled: "false"
      ssl.keystore: "keystore.jks"
      ssl.keystore.password: "password"
      ssl.key.password: "password"
      ssl.truststore: "truststore.jks"
      ssl.truststore.password: "password"
      ssl.protocol: "TLSv1.2"
      ssl.verify.hostname: "false"

      send.metamodel: "true"
      metamodel.module: EVPC Stream Processor
      metamodel.version: 1.0

      redelivery.enabled: "true"
      add.redelivery.headers: "true"
      redelivery.buffers: "in-memory-buffer"
      redelivery.in-memory-buffer.type: "queue"
      redelivery.in-memory-buffer.max.size: "10k"
      redelivery.in-memory-buffer.clear.logger.name: "memory"
      request.timeout.ms: "30000"

2. Интеграция с компонентом LOGA продукта Platform V Monitor#

Настройка интеграции компонента EVPC с компонентом LOGA продукта Platform V Monitor производится в файле vars.yml, блок настроек:

epf:
  logback: # блок настроек журналирования
    level: info # Уровень вывода логов
#    loggers: # Настройка логгеров
#      - name: "ru.example.cep" # Наименование логгера 
#        level: debug # Уровень логирования. Возможные значения: info/warn/debug
#      - name: "org.apache.kafka" # Наименование логгера 
#        level: warn # Уровень логирования. Возможные значения: info/warn/debug
#      - name: "com.typesafe.akka" # Наименование логгера 
#        level: debug # Уровень логирования. Возможные значения: info/warn/debug
    kafka:
      topic: logstash
      retries: 3 # Количество переиницилизаций продюсера
      interval: 1000 # Интервал между переиницилизациями
      multiplier: 1 # Множитель интервала переинициализации
      never_block: true # блокировка работы приложения при недоступности Kafka (при true недоставленные сообщения в kafka отбрасываются)
      discarding_threshold: 20 # процент свободного места в очереди отправки сообщений при достижении которого будут удаляться сообщения уровня TRACE, DEBUG, INFO
      queue_size: 512 # размер очереди для отправки в Кафку
      properties:
        "bootstrap.servers": "hostname-1:9092,hostname-2:9092"
        "client.id": "epf-cluster-test"
        "config.providers": decode
        "config.providers.decode.class": ru.sbt.ss.kafka.DecryptionConfigProvider
        "config.providers.decode.param.security.encoding.key": file:ssl/secret.pass
        "config.providers.decode.param.security.encoding.class": ru.sbt.ss.password.BaseEncryptor

        "security.protocol": SSL
        "ssl.endpoint.identification.algorithm": ""
        "ssl.keystore.location": "ssl/epf.jks"
        "ssl.truststore.location": "ssl/epf.jks"

        "ssl.keystore.password": <password>
        "ssl.truststore.password": <password>
        "ssl.key.password": <password>

3. Интеграция с компонентом Apache Kafka продукта Platform V Synapse Event Transfer Service#

Настройка интеграции производится в файле vars.yml, блок настроек:

epf_defaults: # Блок настроек прессетов транспорта для обработчика, данные настройки будут использоваться в конфигурации обработчика по имени прессета
  kafka_example:
    type: kafka
    bootstrap.servers: example1.ru:9092,example2.ru:9092
    security.protocol: SSL
    ssl.endpoint.identification.algorithm: "" # Отключение проверки хостнейма в сертификате, обязательно для стендов кафки
    ssl.keystore.location: ${vault:ssl.keystore.location} # при использовании Vault
    ssl.keystore.password: ${vault:ssl.keystore.password}
    ssl.key.password: ${vault:ssl.key.password}
    ssl.truststore.location: ${vault:ssl.keystore.location}
    ssl.truststore.password: ${vault:ssl.keystore.password}
    config.providers.vault.class: ru.sbt.ss.kafka.VaultConfigProvider
    config.providers.vault.param.security.encoding.class: ru.sbt.ss.password.BaseEncryptor
    config.providers.vault.param.security.encoding.key: file:ssl/secret.pass
    config.providers.vault.param.ssl.vault.address: https://vault_address
    config.providers.vault.param.ssl.vault.tls.enable: "true"
    config.providers.vault.param.ssl.vault.tls.keystore.location: ssl/vault-client.jks
    config.providers.vault.param.ssl.vault.tls.keystore.password: "{{ jks_password }}"
    config.providers.vault.param.ssl.vault.tls.key.password: "{{ jks_password }}"
    config.providers.vault.param.ssl.vault.tls.truststore.location: ssl/vault-client.jks
    config.providers.vault.param.ssl.vault.tls.truststore.password: "{{ jks_password }}"
    config.providers.vault.param.ssl.endpoint.identification.algorithm: ""
    config.providers.vault.param.ssl.vault.auth.type: approle
    config.providers.vault.param.ssl.vault.auth.role.id: 669dc918-***-158abc0247ac
    config.providers.vault.param.ssl.vault.auth.secret.id: 298bde51-***-ba0f2ceced13
    config.providers.vault.param.ssl.vault.pki.role.name: pki-role
    config.providers.vault.param.ssl.vault.pki.common.name: evpc-dev
    config.providers.vault.param.ssl.keystore.location: /tmp/vault-keystore.jks
    config.providers.vault.param.ssl.truststore.location: /tmp/vault-truststore.jks
    config.providers.vault.param.ssl.vault.secret.path: kv1/certstore
    config.providers.vault.param.ssl.vault.engine.version: 1
    config.providers.vault.param.ssl.vault.secret.key: key
    config.providers.vault.param.ssl.vault.secret.keystore: <secret.keystore>
    config.providers.vault.param.ssl.vault.secret.truststore: <secret.truststore>
    config.providers.vault.param.ssl.vault.pki.email: email@example.com
    config.providers.vault.param.ssl.vault.namespace: my_namespace

4. Интеграция с компонентом EVTA продукта Platform V Synapse Event Transfer Service#

Настройка интеграции компонента EVPC с компонентом EVTA продукта Platform V Synapse Event Transfer Service производится обязательно в двух файлах vars.yml (для компонента EVPC и компонента EVTA):

  1. В файле vars.yml компонента EVPC, блок настроек:

epf_defaults:
  grpc_fpss_example: # используется для параметра ${defaults.grpc_fpss_example} из *.conf
    type: grpc
    url: fpss://k2_simple.common.segment/system/testevent/1 # точка подключения в fpss формате (fpss://домен.федерация.сегмент/система/имя_события/версия)
    host: reactive-stream-adapter-epfegress # имя сервиса egress адаптера
    port: 8081 # порт сервиса egress адаптера
  1. В файле vars.yaml компонента EVTA, обязательный набор параметров в блоке настроек:

reactive_stream_adapter:
   # EVPC соединяется только по протоколу GRPC
  type: grpc
   # отключение механизма автоматического коммита сообщения при вычитке адаптером
  autoCommit: false
   # Включить механизм подтверждения получения/обработки сообщения со стороны EVPC
  needInfoAboutAcknowledge: true
   # Отключение механизма остановки Consumer при простое потока
  useStorageTime: false

5. Получение значений параметров ansible из HashiCorp Vault#

Также возможно реализовать получение значений параметров ansible из HashiCorp Vault. Для этого при указании параметров в файле vars.yml вместо значений параметров используется специальный синтаксис. Например:

ansible_password: "{{ lookup('hashi_vault', 'url=*** namespace=*** auth_method=approle role_id=*** secret_id=*** secret=*** validate_certs=0') }}"

, где:

  • url – URL для подключения к HashiCorp Vault. Например: https://my.vault.address;

  • namespace – используемый namespace;

  • auth_method – метод аутентификации. Например: approle;

  • role_id – используемый role.id;

  • secret_id – используемый secret.id;

  • secret – путь: ключ для получаемого секрета. Например: kv1/company/secret_keys:jks_password;

  • validate_certs – проверка доверия сертификата HashiCorp Vault.

Параметры подключения и аутентификации запрашиваются у администраторов HashiCorp Vault.

В результате значение переменной ansible_password будет получено из HashiCorp Vault при запуске установки.

6. Интеграция с компонентом EVPT продукта Platform V Synapse Streaming Event Processing#

Настройка интеграции компонента EVPC с компонентом EVPT производится в файле vars.yml, блок настроек:

scheduler:
  url: "localhost:8080" # Url, на котором запущен EVPT, в который будут добавляться задачи на срабатывание агрегации
  timeout: 5000 # Тайм-аут ожидания ответа
  flow.port: 9090 # Порт, на котором запущен сервер, принимающий вызовы от EVPT, для последующего срабатывания триггера
  flow.host: 0.0.0.0 # Хост, на котором запущен сервер, принимающий вызовы от EVPT, для последующего срабатывания триггера
  flow.advertisedPort: 9090 # Порт сервиса для callback от EVPT
  flow.advertisedHost: localhost # Имя сервиса для callback от EVPT

Для того, чтобы вызов EVPT был защищенным, возможно использование параметров с префиксом scheduler..

Аналогично, чтобы внутренний сервер, принимающий вызовы от EVPT, для последующего срабатывания триггера был запущен с SSL-контекстом возможно использование параметров с префиксом scheduler.flow..