Установка EVTD#

Порядок установки EVTD#

Порядок установки компонента EVTD зависит от способа развертывания компонента.

Способы развертывания компонента:

  • целевая: ручная установка с использованием Ansible;

  • опциональная: автоматическая установка с использованием Jenkins.

Ручная установка с использованием Ansible#

Для выполнения ручной установки с использованием Ansible необходимо выполнить следующие действия:

  1. Заполнить файлы в директории inventories. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».

  2. Создать:

  • нового пользователя;

  • системные или пользовательские сервисы обслуживания.

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

  1. Заполнить файл vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».

  2. Задать настройки безопасности в файле vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройки безопасности для установки EVTD». Пример заполнения файла vars.yml описан в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».

  3. Выполните предустановку брокеров. Подробнее описано в подразделе «Установка EVTD с предустановленными брокерами».

  4. Выполнить ручную установку EVTD с использованием Ansible. Подробнее описано в подразделе «Ручная установка EVTD с использованием Ansible».

Автоматическая установка с использованием Jenkins#

Для выполнения автоматической установки с использованием Jenkins необходимо выполнить следующие действия:

  1. Заполнить файлы в директории inventories. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».

  2. Создать:

  • нового пользователя;

  • системные и пользовательские сервисы обслуживания.

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

  1. Заполнить файл vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».

  2. Задать настройки безопасности в файле vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройки безопасности для установки EVTD». Пример заполнения файла vars.yml описан в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».

  3. Выполните предустановку брокеров. Подробнее описано в подразделе «Установка EVTD с предустановленными брокерами».

  4. Создать задания в Jenkins для автоматической установки EVTD. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Создание Jenkins Job для автоматической установки EVTD».

  5. Создать Jenkins Job для создания конфигурационного дистрибутива. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Jenkins Job для создания конфигурационного дистрибутива для EVTD».

  6. Создать Jenkins Job для установки конфигурационного дистрибутива. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Jenkins Job для установки конфигурационного дистрибутива для EVTD».

  7. Выполнить автоматическую установку EVTD с использованием Jenkins. Подробнее описано в подразделе «Автоматическая установка EVTD с использованием Jenkins».

Дополнительные настройки и функции#

Дополнительно при установке (ручной/автоматической) могут быть использованы следующие настройки и функции:

  1. Запуск установки под другим пользователем. Подробнее описано в подразделе «Запуск установки EVTD под другим пользователем».

  2. Предоставление прав на кластере для администратора доступа для EVTD. Подробнее описано в подразделе «Предоставление прав на кластере для администратора доступа для EVTD».

  3. Настройка интеграции с сервисными системами. Подробнее описано в подразделе «Настройка интеграции EVTD с сервисными системами».

Задание константных значений конфигурационным параметрам#

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

Для задания константных значений необходимо:

  • создать файл preferred_ansible_vars.yml в директории Pipeline, которая размещается в скриптах установки;

  • указать в файле preferred_ansible_vars.yml* необходимые параметры с константными значениями. Параметры необходимо указывать в том же формате, как и в файле vars.yml в inventories.

Структура заполненного файла vars.yml приведена в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».

Логика приоритетов:

  • При наличии файла preferred_ansible_vars.yml в директории Pipeline значения, указанные в нем, применяются как самые приоритетные и не могут быть изменены через inventories;

  • При наличии файла preferred_ansible_vars.yml в директории Pipeline и попытке изменить значения параметров в файле vars.yml новые заданные параметры не применятся — остается приоритет у данных из файла preferred_ansible_vars.yml;

  • При отсутствии файла preferred_ansible_vars.yml все параметры применяются из файла vars.yml.

Функциональность приоритетных параметров можно использовать при работе с jenkins job reactive_stream_adapter_vm (установка на ВМ) и reactive_stream_adapter (установка в облачной среде).

Установка EVTD с предустановленными брокерами#

С предустановкой продукта Platform V Corax#

  1. Выполните предустановку продукта Platform V Corax согласно документации на продукт.

  2. Убедитесь, что выполнены все предусловия к установке согласно разделу Подготовка окружения EVTD.

  3. Для подключения kafka-клиента установите необходимые классы-перехватчики:

  • распакуйте дистрибутив ./EVTD-kafka-[version]-distrib.zip и выберите нужные директории из дистрибутива ./EVTD-kafka-[version]-distrib.zip/package/bh/[interceptor], а также необходимые библиотеки для Platform V Corax;

  • распакуйте дистрибутив ./EVTD-sdk-[version]-distrib.zip, содержащий библиотеки для перехватчиков;

  • добавьте актуальную версию перехватчика в блок <dependency> согласно документу «Руководство прикладного разработчика для EVTD», раздел «Актуальные версии перехватчиков»;

  • сконфигурируйте и установите необходимые перехватчики согласно документу «Руководство прикладного разработчика для EVTD» в разделе «Классы-перехватчики». Подробнее о видах и функциях перехватчиков разделе «Виды перехватчиков».

С предустановкой брокеров Apache Kafka#

  1. Выполните предустановку Apache Kafka согласно документации Apache Kafka.

  2. Убедитесь, что выполнены все предусловия к установке согласно разделу Подготовка окружения EVTD.

  3. Для подключения kafka-клиента установите необходимые классы-перехватчики:

  • распакуйте дистрибутив ./EVTD-kafka-[version]-distrib.zip и выберите нужные директории из дистрибутива ./EVTD-kafka-[version]-distrib.zip/package/bh/[interceptor], а также необходимые библиотеки для Apache Kafka;

  • распакуйте дистрибутив ./EVTD-sdk-[version]-distrib.zip, содержащий библиотеки для перехватчиков;

  • добавьте актуальную версию перехватчика в блок <dependency> согласно документу «Руководство прикладного разработчика для EVTD» в разделе «Актуальные версии модулей»;

  • сконфигурируйте и установите необходимые перехватчики согласно документу «Руководство прикладного разработчика для EVTD» в разделе «Классы-перехватчики». Подробнее о видах и функциях перехватчиков разделе «Виды перехватчиков».

Ручная установка EVTD с использованием Ansible#

  1. Убедитесь, что выполнена Подготовка окружения EVTD.

  2. Выполните настройку inventory согласно разделу Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».

  3. Убедитесь, что с сервера, с которого будет производиться установка, доступны все узлы компонента.

  4. Распакуйте дистрибутив ./EVTD-kafka-[version]-distrib.zip и поместите содержимое директории package/bh в папку files скриптов ansible на сервере установки.

  5. Поместите утилиту для шифрования паролей encryptor-<version>.jar из files в корень директории скриптов ansible.

  6. Запустите установку командой:

ansible-playbook -i inventories/<ID>/inventory zk_and_kafka.yml --ask-vault-pass

, где ID — имя недавно созданного inventory.

Установка всех компонентов EVTD будет производиться на сервера из выбранного inventory.

Автоматическая установка EVTD с использованием Jenkins#

  1. Убедитесь, что выполнена подготовка окружения. Подробнее в разделе Подготовка окружения EVTD.

  2. Выполните настройку inventory. Inventory должны быть заполнены согласно инструкции в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».

  3. Убедитесь, что созданы необходимые задания Jenkins из состава архива ./EVTD-scripts-[version]-distrib.zip:

    • SYN_custom_kafka – для установки компонента EVTD;

    • kafka_config_create – для создания конфигурационных дистрибутивов;

    • kafka_config_deploy – для установки конфигурационных дистрибутивов, созданных kafka_config_create.

  4. Заполните параметры созданной Jenkins job SYN_custom_kafka согласно разделу Подготовка окружения EVTD, подраздел «Создание Jenkins Job для автоматической установки EVTD».

  5. Запустите Jenkins job.

  6. Убедитесь, что Jenkins job завершена без ошибок, просмотрев лог консоли Jenkins и проверив код завершения (статус «Finished: SUCCESS»).

Предоставление прав на кластере для администратора доступа для EVTD#

По завершению установки под пользователем kafka на сервере Kafka создать УЗ администратора доступа, который в дальнейшем будет отвечать за выдачу прав пользователям:

/opt/Apache/kafka/bin/kafka-acls.sh --bootstrap-server `hostname -f`:9093 --allow-principal User:"<DN сертификата администратора доступа из папки ssl_admin>" --operation CREATE --cluster --add --command-config /opt/Apache/kafka/config/producer.properties

/opt/Apache/kafka/bin/kafka-acls.sh --bootstrap-server `hostname -f`:9093 --allow-principal User:"<DN сертификата администратора доступа из папки ssl_admin>" --operation ALTER --cluster --topic "*" --add --command-config /opt/Apache/kafka/config/producer.properties

/opt/Apache/kafka/bin/kafka-acls.sh --bootstrap-server `hostname -f`:9093 --allow-principal User:"<DN сертификата администратора доступа из папки ssl_admin>" --operation DESCRIBE --cluster --group "*" --topic "*" --add --command-config /opt/Apache/kafka/config/producer.properties

/opt/Apache/kafka/bin/kafka-acls.sh --bootstrap-server `hostname -f`:9093 --allow-principal User:"<DN сертификата администратора доступа из папки ssl_admin>" --operation DESCRIBECONFIGS  --topic "*" --add --command-config /opt/Apache/kafka/config/producer.properties

/opt/Apache/kafka/bin/kafka-acls.sh --bootstrap-server `hostname -f`:9093 --allow-principal User:"<DN сертификата администратора доступа из папки ssl_admin>" --operation ALTERCONFIGS  --topic "*" --add --command-config /opt/Apache/kafka/config/producer.properties

Просмотреть DN в JKS-файле хранилища сертификатов можно командой:

 keytool  -v -list -keystore <имя хранилища>.jks  | sed -n -E '/PrivateKeyEntry/{N;N;N;N;N;s/.*Owner: (.*)\nIssuer.*/\1/p}'

Запуск установки EVTD под другим пользователем#

В случае запрета удаленного подключения под пользователем kafka возможно использовать механизм запуска установки брокеров брокеров Platform V Corax / Apache Kafka под другим пользователем (не под тем, что используется для подключения к серверу установки). Для этого предварительно необходимо добавить параметры в конфигурационный файл vars.yml:

# авторизация под другим пользователем и его паролем
ansible_become: 1 # Использование данного механизма при установке. Доступные значения: 0 и 1. Если 1 — при авторизации на сервере, представляемся другим пользователем. Установка будет производиться под пользователем, указанным в параметре *ansible_become_user* ниже. Значение по умолчанию: 0 (не используем данный механизм).
ansible_become_method: su # Способ представления пользователя в Linux. Доступные значения: su или sudo. При использовании sudo - можно не запрашивать пароль пользователя. Значение по умолчанию: sudo.
ansible_become_user: <имя пользователя> # пользователь, под которым будет производиться установка. Например, kafka. В таком случае, в параметре ansible_user указывается пользователь, под которым осуществляется вход на сервер.
ansible_become_pass: <пароль пользователя> # пароль пользователя, под которым будет производиться установка (Например, kafka).

Если пароль пользователя неизвестен (способ представления пользователя с использованием sudo):

# авторизация под другим пользователем с использованием sudo (при добавлении в /etc/sudoers: user ALL=(<имя пользователя>) NOPASSWD:ALL)
ansible_become: 1
ansible_become_user: <имя пользователя> # пользователь, под которым будет производиться установка

При использовании механизма запуска установки под другим пользователем первая строка в файле inventory должна выглядеть так (отключаем механизм ansible_become для сервера, с которого происходит установка):

localhost ansible_connection=local ansible_become=0

После запуска установки с описанными параметрами установка брокеров Platform V Corax / Apache Kafka будет осуществляться под пользователем, указанным в параметре ansible_become_user.

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

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

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

  • Platform V Corax (компонент KFKA);

  • Platform V Synapse Event-domain management (компонент EDMN Synapse Event Monitoring system (Mayak)).

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

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

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

Настройка интеграции брокеров Platform V Corax / Apache Kafka с компонентом AUDT продукта Platform V Audit SE производится в конфигурации перехватчика. Подробнее описано в документе «Руководство прикладного разработчика для EVTD», раздел «Validator-interceptor-audit-callback».

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

Настройка интеграции брокеров Platform V Corax c EVTD производится с помощью перехватчика — при отправке и получении сообщений через Platform V Corax можно настроить дополнительные сервисные функции. Подробнее описано в документе «Руководство прикладного разработчика».

3. Интеграция с компонентом EDMN (Mayak)#

Настройка интеграции брокеров Platform V Corax / Apache Kafka с компонентом Synapse Event Monitoring system (Mayak) производится после установки брокеров Platform V Corax / Apache Kafka. Настройки подключения со стороны системы мониторинга описаны в документации EDMN.

  • Подключение к брокерам Platform V Corax / Apache Kafka осуществляется со стороны системы мониторинга EDMN по заранее заданным параметрам в файле vars.yml, блок настроек:

kafka:
jmx_access_roles: # переменные для генерации доступов. Если переменная не определена, то текущие доступы не меняются
    - user: <user_name>
    access: readonly
    password: <user_password>
  • Настройка подключения к компоненту Zookeeper осуществляется в блоке:

zookeeper:
  jmx_access_roles: # переменные для генерации доступов. Если переменная не определена, то текущие доступы не меняются
    - user: myuser
      access: readonly
      password: mypassword