Установка EVTD#
Порядок установки EVTD#
Порядок установки компонента EVTD зависит от способа развертывания компонента.
Способы развертывания компонента:
целевая: ручная установка с использованием Ansible;
опциональная: автоматическая установка с использованием Jenkins.
Ручная установка с использованием Ansible#
Для выполнения ручной установки с использованием Ansible необходимо выполнить следующие действия:
Заполнить файлы в директории
inventories. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».Создать:
нового пользователя;
системные или пользовательские сервисы обслуживания.
Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Создание системных и пользовательских сервисов обслуживания для EVTD».
Заполнить файл vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».
Задать настройки безопасности в файле vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройки безопасности для установки EVTD». Пример заполнения файла vars.yml описан в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».
Выполните предустановку брокеров. Подробнее описано в подразделе «Установка EVTD с предустановленными брокерами».
Выполнить ручную установку EVTD с использованием Ansible. Подробнее описано в подразделе «Ручная установка EVTD с использованием Ansible».
Автоматическая установка с использованием Jenkins#
Для выполнения автоматической установки с использованием Jenkins необходимо выполнить следующие действия:
Заполнить файлы в директории
inventories. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».Создать:
нового пользователя;
системные и пользовательские сервисы обслуживания.
Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Создание системных и пользовательских сервисов обслуживания для EVTD».
Заполнить файл vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».
Задать настройки безопасности в файле vars.yml. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Настройки безопасности для установки EVTD». Пример заполнения файла vars.yml описан в разделе Подготовка окружения EVTD, подраздел «Пример заполненного файла vars.yml для EVTD».
Выполните предустановку брокеров. Подробнее описано в подразделе «Установка EVTD с предустановленными брокерами».
Создать задания в Jenkins для автоматической установки EVTD. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Создание Jenkins Job для автоматической установки EVTD».
Создать Jenkins Job для создания конфигурационного дистрибутива. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Jenkins Job для создания конфигурационного дистрибутива для EVTD».
Создать Jenkins Job для установки конфигурационного дистрибутива. Подробнее описано в разделе Подготовка окружения EVTD, подраздел «Jenkins Job для установки конфигурационного дистрибутива для EVTD».
Выполнить автоматическую установку EVTD с использованием Jenkins. Подробнее описано в подразделе «Автоматическая установка EVTD с использованием Jenkins».
Дополнительные настройки и функции#
Дополнительно при установке (ручной/автоматической) могут быть использованы следующие настройки и функции:
Запуск установки под другим пользователем. Подробнее описано в подразделе «Запуск установки EVTD под другим пользователем».
Предоставление прав на кластере для администратора доступа для EVTD. Подробнее описано в подразделе «Предоставление прав на кластере для администратора доступа для EVTD».
Настройка интеграции с сервисными системами. Подробнее описано в подразделе «Настройка интеграции 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#
Выполните предустановку продукта Platform V Corax согласно документации на продукт.
Убедитесь, что выполнены все предусловия к установке согласно разделу Подготовка окружения EVTD.
Для подключения 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#
Выполните предустановку Apache Kafka согласно документации Apache Kafka.
Убедитесь, что выполнены все предусловия к установке согласно разделу Подготовка окружения EVTD.
Для подключения 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#
Убедитесь, что выполнена Подготовка окружения EVTD.
Выполните настройку inventory согласно разделу Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».
Убедитесь, что с сервера, с которого будет производиться установка, доступны все узлы компонента.
Распакуйте дистрибутив ./EVTD-kafka-[version]-distrib.zip и поместите содержимое директории
package/bhв папкуfilesскриптов ansible на сервере установки.Поместите утилиту для шифрования паролей
encryptor-<version>.jarизfilesв корень директории скриптов ansible.Запустите установку командой:
ansible-playbook -i inventories/<ID>/inventory zk_and_kafka.yml --ask-vault-pass
, где ID — имя недавно созданного inventory.
Установка всех компонентов EVTD будет производиться на сервера из выбранного inventory.
Автоматическая установка EVTD с использованием Jenkins#
Убедитесь, что выполнена подготовка окружения. Подробнее в разделе Подготовка окружения EVTD.
Выполните настройку inventory. Inventory должны быть заполнены согласно инструкции в разделе Подготовка окружения EVTD, подраздел «Настройка inventory для EVTD».
Убедитесь, что созданы необходимые задания Jenkins из состава архива ./EVTD-scripts-[version]-distrib.zip:
SYN_custom_kafka – для установки компонента EVTD;
kafka_config_create – для создания конфигурационных дистрибутивов;
kafka_config_deploy – для установки конфигурационных дистрибутивов, созданных kafka_config_create.
Заполните параметры созданной Jenkins job SYN_custom_kafka согласно разделу Подготовка окружения EVTD, подраздел «Создание Jenkins Job для автоматической установки EVTD».
Запустите Jenkins job.
Убедитесь, что 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