Установка и запуск агента Webhook
Агент Webhook — это дополнительный модуль системы Proceset, предназначенный для обработки входящих HTTP-запросов Webhook и запросов JS-трекера. Этот модуль может быть развернут на отдельном сервере, что позволяет разграничить доступ к функционалу системы в разных сетевых контурах, что особенно важно с точки зрения информационной безопасности.
Сервер Proceset и агент Webhook взаимодействуют по протоколу gRPC.
Все дистрибутивы агента Webhook предоставляются в виде Docker-образов.
Дополнительная информация о функционале в следующих разделах:
Запуск агента Webhook
Подготовка хостов и параметров конфигурации
Перед запуском агента Webhook необходимо определить сетевые адреса и параметры конфигурации.
Для примера используются следующие имена хостов:
proceset.domain.local
— адрес хоста с установленной системой Procesetagent.domain.local
— адрес хоста, на котором будет работать агент Webhook
При запуске агента Webhook необходимо задать переменные окружения, определяющие его параметры работы.
Переменная окружения | Описание |
---|---|
CL_NAME | Уникальное имя ноды в системе Proceset |
CL_PORT | Порт ноды внутри сети Docker, используемый для входящих соединений gRPC |
CL_REMOTE_NODES | Список адресов (включая порт) всех нод для взаимодействия по gRPC |
FE_GRAPHQL_DISABLE | Отключение GraphQL на веб-сервере агента Webhook (true ) |
FE_CORS_POLICY | Доверенные узлы для CORS (список доменов через запятую, от которых на агент будут поступать HTTP-запросы) |
FE_URL | URL-адрес ноды агента Webhook |
Подготовка образа и сертификатов
Сначала загрузите дистрибутив агента Webhook на сервер, где он будет запущен. Затем добавьте образ в локальный реестр Docker:
$ gunzip infomaximum_docker_webhook_241201.tar.gz
# docker load < infomaximum_docker_webhook_241201.tar
Подготовьте сертификат X.509 для работы HTTPS. Сертификат (.crt) содержит открытый ключ в формате PEM, а файл ключа (.key) содержит закрытый ключ для шифрования соединения в формате PKCS8.
Разместите сертификаты в удобном каталоге на хосте, например, в /opt/agent/
. В этот же каталог добавьте сертификат сервера Proceset.
Если Docker Swarm ранее не был запущен на сервере, выполните команду инициализации:
# docker swarm init --advertise-addr 127.0.0.1:2377 --listen-addr 127.0.0.1:2377
Создайте секреты Docker для хранения сертификатов и ключей:
- Секреты для SSL-сертификата и ключа сервера агента Webhook для работы gRPC:
Где
# docker secret create cluster_current.crt ${PATH_FILE} # docker secret create cluster_current.key ${PATH_FILE}
${PATH_FILE}
— до файла открытого (.crt) и закрытого (.key) ключа для агента Webhook - Секрет для открытого ключа, который необходим для доверия серверу Proceset. Можно использовать сертификат CA, подписавший сертификат сервера Proceset, или сертификат самой ноды Proceset. Формат PEM или DER (.crt):
Где
# docker secret create cluster_remote_node_main.crt ${PATH_FILE}
${PATH_FILE}
— путь к этому файлу - Секреты для HTTPS-сертификата агента Webhook (PFX-файл, содержащий открытый и закрытый ключ X.509, а также пароль к нему)
Где
# docker secret create infomaximum_app_https_certificate ${PATH_FILE} # echo -n "pfx_password" | docker secret create infomaximum_app_https_certificate_password -
${PATH_FILE}
— путь к PFX-файлу
Создайте том Docker для хранения логов агента Webhook. Пример команды:
# docker volume create infomaximum-agent-log
Запуск контейнера агента Webhook
Запустите сервис агента Webhook с помощью следующей команды:
# docker service create --name infomaximum-automation-agent \
-e CL_NAME='agent' -e CL_PORT='7000' \
-e CL_REMOTE_NODES='proceset.domain.local:7000' \
-e FE_GRAPHQL_DISABLE='true' \
-e FE_CORS_POLICY='site1.example.ru,site2.example.ru' \
-e FE_URL='https://agent.domain.local' \
--secret cluster_current.crt \
--secret cluster_current.key \
--secret cluster_remote_node_main.crt \
--secret infomaximum_app_https_certificate \
--secret infomaximum_app_https_certificate_password \
--mount type=volume,src=infomaximum-agent-log,target=/var/log/infomaximum/ \
--publish published=7000,target=7000,mode=host \
--publish published=443,target=8010,mode=host \
--restart-max-attempts 5 \
--restart-condition "on-failure" \
infomaximum/infomaximum_webhook:241201
Если контейнер агента Webhook успешно запущен, перезапустите сервер Proceset с новыми параметрами.
В этом разделе описано, как настроить взаимодействие агента Webhook с сервером Proceset, установленным на ОС семейства Linux.
Для работы Proceset с агентом Webhook необходимо подготовить сертификат X.509 для gRPC в формате PEM (если у вас есть PFX-файл, его можно конвертировать в PEM), а также сертификат ноды агента Webhook.
Разместите сертификаты в каталоге /opt/agent/
, затем создайте Docker-секреты на их основе:
# docker secret create cluster_current.crt ${PATH_FILE}
# docker secret create cluster_current.key ${PATH_FILE}
# docker secret create cluster_remote_node_agent.crt ${PATH_FILE}
Где ${PATH_FILE}
— путь к соответствующему файлу.
Перед запуском с новыми параметрами остановите службу Proceset:
# docker service rm infomaximum-app
После этого выполните запуск службы с обновленными параметрами:
docker service create --name infomaximum-app \
-e CL_NAME='proceset' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='agent.domain.local:7000' \
--secret infomaximum_app_https_certificate \
--secret infomaximum_app_https_certificate_password \
--secret cluster_current.crt \
--secret cluster_current.key \
--secret cluster_remote_node_agent.crt \
--mount type=volume,src=infomaximum-app-data,target=/var/lib/infomaximum/data/ \
--mount type=volume,src=infomaximum-app-log,target=/var/log/infomaximum/ \
--publish published=443,target=8010,mode=host \
--publish published=7000,target=7000,mode=host \
--restart-max-attempts 5 \
--restart-condition "on-failure" \
-e JVM_MAX_MEMORY='4G' \
-e FE_URL="https://proceset.domain.local" \
dockerhub.office.infomaximum.com/infomaximum/infomaximum_app:d241201
Проверка успешного запуска
Если контейнер или служба успешно запустились, перейдите в веб-интерфейс и убедитесь, что агент Webhook добавлен.
Нажмите шестеренку в нижней части боковой панели и выберите раздел О системе. На странице должна появиться новая строка с агентом Webhook.
Была ли статья полезна?