Установка ProtoOBP Backend
На этой странице:
- Описание
- Подготовка сервера
- Установка ProtoOBP Backend
- Подключение собственного HTTPS-сертификата
- Изменение лицензионной информации
- Использование локальных Docker репозиториев
- Установка ProtoOBP Backend на нескольких серверах
Описание
Компоненты Backend сервера Proto Observability Platfrom поставляются в виде docker контейнеров, управляемых с помощью docker compose
.
Компоненты ProtoOBP Backend могут быть разнесены на несколько хостов для повышения производительности и отказоустойчивости платформы.
В данном разделе рассматривается инсталляция ProtoOBP Backend сервера в варианте с одним физическим или виртуальным хостом. При необходимости, конфигурация для двух и более серверов предоставляется по запросу в техническую поддержку Proto.
Подготовка сервера
Необходимо выделить физический или виртуальный сервер для Proto OBP Backend сервера.
Proto OBP Backend
Память RAM: 24 GB
CPU: 12 vCPU
Диск: 500GB SSD (5000iops+)
ОС: Linux (Debian-based или CentOS 8+)
Docker: 25+ (https://docs.docker.com/engine/install/)
Docker-compose: v2.24.5+
Доступ к Интернет: для скачивания образов
Сетевые доступы (порты): 80, 443
Сетевые доступы:
- Для коммуникации Proto OBP агентов с Proto OBP Backend сервером необходимо обеспечить сетевой доступ по порту 80 или 443
- Для доступа к веб-интерфейсу Proto OBP необходимо обеспечить сетевой доступ по 80 или 443 портам
Source Name | Source IP | Destination Name | Destination IP | Destination PORT/PROTO | Description |
---|---|---|---|---|---|
Proto Platform Backend | protoobp_backend_ip | Proto Repository | registry.git.proto.group | 443/tcp | Скачивание дистрибутитовов и образов Proto Observability Platform |
IP адреса контролируемых серверов, на которые устанавливаются агенты системы Proto Observability Platform (обычно вся внутреняя сеть) | ANY_INTERNAL | Proto Platform Backend | protoobp_backend_ip | 80/tcp, 443/tcp | Коммуникация Агентов с Proto Platform Backed |
IP адреса пользователей веб-интерфейса системы Proto Observability Platform (обычно вся внутренняя сеть) | ANY_INTERNAL | Proto Platform Backend | protoobp_backend_ip | 80/tcp, 443/tcp | Доступ должен быть открыт для всех пользователей веб-интерфеса платформы |
IP адреса контролируемых серверов, на которые устанавливаются агенты системы Proto Observability Platform (обычно вся внутреняя сеть) | localhost | Контролируемый сервер (локально) | localhost | 8125/tcp, 8126/tcp, 8125/udp | Трейсеры встраиваемые в приложения должны иметь доступ к агенту платформы установленному на этом же хосте. Порты должны быть открыты в рамках локальной сети контролируемого сервера. |
Сервер/точка сбора трафика от пользователей веб-браузерных и мобильных приложений | EUM.customer.domain | Proto Platform Backend | protoobp_backend_ip | 443/tcp | Трафик телеметрии от веб-браузеров и мобильных устройств реальных пользователей к серверу Системы. Должен быть проксирован. Например, трафик от браузеров и мобильных устройств направляется на сервер EUM.customer.domain:443, с которого трафик должен быть проксирован на Backend_IP:443 |
Установка ProtoOBP Backend
С использованием скрипта установки (рекомендуется)
Для быстрой установки предоставляется готовый скрипт, применяются следующие ограничения:
- установка только на 1 сервере (пилот или небольшая продуктивная инсталляция)
- скачивание образов производится напрямую из репозитория вендора.
В ходе работы скрипта будут запрошены данные, содержащиеся в лицензионном сертификате от вендора (должен быть заранее получен, если у вас еще нет сертификата – обратитесь к компании-партнеру Proto Observability или вендору по email ask@proto.group).
Для установки с помощью скрипта:
-
Скопируйте следующую команду и выполните в командной строке:
curl -sSL -u docs:protoobp https://docs.proto.group/setup_protoobp.sh -o setup_protoobp.sh \ && chmod +x setup_protoobp.sh \ && sudo ./setup_protoobp.sh
-
В интерактивном режиме введите запрашиваемые данные.
-
Дождитесь завершения работы скрипта (в случае некоторых ошибок скрипт перезапускается самостоятельно).
Без использования скрипта установки
Команды ниже рекомендуется выполнять, переключившись на привилегированную учетную запись (ниже команды будут указаны уже без префикса sudo
):
sudo su
Порядок действий по установке ProtoOBP Backend на одном сервере:
-
Скачайте и распакуйте архив с файлами дистрибутива
protoobp-backend-dist-singlehost-194.tar.gz
:-
скачайте файл с помощью
curl
:curl --header "PRIVATE-TOKEN:<your_token>" \ "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-backend-dist/194/protoobp-backend-dist-singlehost-194.tar.gz" \ --output protoobp-backend-dist-singlehost-194.tar.gz
где
<your_token>
– ваш пароль, указанный в лицензионном сертификате, полученном ранее от вендора. -
cоздайте папку
/opt/protoobp
на сервере и распакуйте в нее содержимое архива:mkdir -p /opt/protoobp && tar -xzvf protoobp-backend-dist-singlehost-194.tar.gz -C /opt/protoobp
-
-
Внесите данные лицензии и вашего окружения.
-
Перейдите в каталог Backend (
/opt/protoobp
) и переименуйте файлenv_template-194
в.env
:cd /opt/protoobp && mv env_template-194 .env
-
В файле
.env
задайте корректные значения обязательных параметров:-
POBP_LICENSE_COMPANY_NAME
– название компании-владельца лицензии, указано в вашем лицензионном сертификате от вендора в поле “Имя компании для лицензии” (кирилицей). Пример конфигурации:POBP_LICENSE_COMPANY_NAME=Супер Корпорация
-
POBP_LICENSE_KEY
– лицензионный ключ, указан в вашем лицензионном сертификате от вендора в поле “Лицензионный ключ”, после копирования-вставки необходимо убрать все символы переноса строк (значение должно быть указано в одну строчку). Пример конфигурации:POBP_LICENSE_KEY=b916e441450f...
-
POBP_COMPUTE
– имя хоста, доступное для подключения агентов, например, это может быть FQDN хоста в локальной сети. Пример конфигурации:POBP_COMPUTE=proto-compute.mycompany.local
-
UI_URL
– адрес ProtoOBP Backend сервера, используемый для доступа к веб-интерфейсу системы, если отличается отPOBP_COMPUTE
. Например, вPOBP_COMPUTE
может быть внутреннее имя сервера, а для доступа к веб-интерфейсу используется другое имя, доступное в публичном DNS и для которого выпущен SSL-сертификат. Значением должно быть доступное в DNS или локально имя хоста. Для тестовой инсталляции можно указать и IP адрес (обязательно сhttps://
).Пример конфигурации:
UI_URL=https://my.proto.backend.local
или
UI_URL=https://10.10.10.1
Не используйте значения
127.0.0.1
,localhost
,0.0.0.0
или тому подобные. -
POBP_DATA_DIRECTORY
– путь к папке хранения данных, если отличается от стандартного значения/opt/protoobp/data
, указанная здесь директория должна быть создана вами вручную.
-
-
-
Создайте каталоги для хранения данных и установите на них необходимые права доступа. Ниже указаны команды со значением
POBP_DATA_DIRECTORY
по умолчанию (/opt/protoobp/data/
), если вы ранее меняли значениеPOBP_DATA_DIRECTORY
– откорректируйте команды ниже:mkdir -p /opt/protoobp/data/database && chown -R 101:101 /opt/protoobp/data/database mkdir -p /opt/protoobp/data/opensearch && chown -R 1000:1000 /opt/protoobp/data/opensearch mkdir -p /opt/protoobp/data/metrics && chown -R 1000:1000 /opt/protoobp/data/metrics
-
Создайте файлы
alertrules.yml
иalertpolicies.yml
и измените владельца файлов на служебного пользователя (nonroot
):touch /opt/protoobp/alertrules.yml /opt/protoobp/alertpolicies.yml && \ chown 65532:65532 /opt/protoobp/alertrules.yml /opt/protoobp/alertpolicies.yml
-
Скачайте Docker образы и запустите систему:
-
Подключитесь к Docker репозиторию ProtoOBP выполнив команду:
docker login --username <USERNAME> registry.git.proto.group
Ваш
<USERNAME>
и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. -
Перейдите в папку
/opt/protoobp
и убедитесь, что у вас есть доступ к репозиторию образов Proto OBP (registry.git.proto.group:443
иgit.proto.group:443
), выполнив:docker compose -f docker-compose-194.yaml pull
Должно начаться скачивание необходимых образов.
-
После скачивания Docker образов, запустите компоненты Proto OBP Backend сервера, выполнив:
docker compose -f docker-compose-194.yaml up -d
-
При первом запуске контейнеры proto-storage
, proto-data-aggregator
, proto-trace-processor
и proto-metric-receiver
инициализируются, после чего перезапускаются, что ведет к ошибке в выводе docker compose
– это нормальная ситуация, поэтому в случае появления ошибки при первом запуске, отмените выполнение текущей команды (CTRL+c
) повторите команду:
docker compose -f docker-compose-194.yaml up -d
Запуск всех компонентов может занять 2-4 минуты.
Проверьте, что все компоненты запустились, не происходит циклических рестартов, все компоненты, для которых определены проверки, находятся в статусе healthy
:
docker ps -a --format "table {{.Names}}\t{{.Status}}" | (
read -r header
echo "$header"
while read -r line; do
echo "$line"
done | sort | while read -r line; do
if [[ "$line" =~ \(unhealthy\) ]]; then
echo -e "$(tput setaf 1)$line$(tput sgr0)"
elif [[ "$line" =~ \(healthy\) ]]; then
echo -e "$(tput setaf 2)$line$(tput sgr0)"
elif [[ "$line" =~ \(Restarting\) ]]; then
echo -e "$(tput setaf 1)$line$(tput sgr0)"
else
echo -e "$(tput setaf 3)$line$(tput sgr0)"
fi
done
)
Пример вывода:
NAMES STATUS
proto-alertmanager Up 3 minutes (healthy)
proto-alert-monitor Up 3 minutes (healthy)
proto-alert-processor Up 3 minutes (healthy)
proto-alert-rule-manager Up 3 minutes
proto-auth Up 3 minutes (healthy)
proto-backend-logs-viewer Up 3 minutes (healthy)
proto-data-aggregator Up 3 minutes (healthy)
proto-data-analyzer-api Up 3 minutes (healthy)
proto-data-analyzer-refresh Up 3 minutes (healthy)
proto-data-analyzer-router Up 3 minutes (healthy)
proto-data-analyzer-worker-1 Up 3 minutes
proto-data-analyzer-worker-2 Up 3 minutes
proto-database Up 3 minutes (healthy)
proto-kafka Up 3 minutes (healthy)
proto-metric-adapter Up 3 minutes (healthy)
proto-metric-analyzer Up 3 minutes (healthy)
proto-metric-exporter Up 2 minutes (healthy)
proto-metric-receiver Up 3 minutes (healthy)
proto-metric-storage Up 3 minutes (healthy)
proto-nginx Up 2 minutes (healthy)
protoobp-agent Up 3 minutes (healthy)
proto-otel-collector Up 2 minutes (healthy)
proto-postgresql Up 3 minutes (healthy)
proto-storage Up 3 minutes (healthy)
proto-trace-processor Up 2 minutes (healthy)
proto-trace-receiver Up 3 minutes (healthy)
proto-ui Up 2 minutes (healthy)
proto-zookeeper Up 3 minutes (healthy)
После сообщения об успешном запуске всех контейнеров, перейдите в браузере по адресу, указанному в UI_URL
(адрес сервера).
Стандартная учетная запись для доступа к веб-интерфейсу – логин: admin
, пароль: protoobp
.
Подключение собственного HTTPS-сертификата
По умолчанию для доступа к веб-интерфейсу используется HTTPS c самоподписанным сертификатом.
Для использования собственного HTTPS-сертификата:
-
выпустите сертификат для сервера, при этом
Common Name
должно совпадать с именем домена, указанного в файле.env
в переменнойUI_URL
, и перенести файлы ключа и сертификата в формате.pem
на сервер ProtoOBP Backend. -
раскомментируйте в файле
/opt/protoobp/.env
следующие переменные и укажите корректный путь к файлам сертификата и ключа:POBP_SSL_CERT=/opt/protoobp/ssl/cert.pem # указан пример, введите действительный путь к файлу POBP_SSL_CERT_KEY=/opt/protoobp/ssl/cert.pem # указан пример, введите действительный путь к файлу
-
в файле
docker-compose-194.yaml
раскомментируйтеvolumes
для сервисовproto-nginx
иproto-auth
(изменения в значения вносить не требуется, так как используются переменные из.env
файла):proto-nginx: ... volumes: - ${POBP_SSL_CERT}:/home/nginx/cert.pem - ${POBP_SSL_CERT_KEY}:/home/nginx/cert.key
proto-auth: ... volumes: - ${POBP_SSL_CERT}:/home/nonroot/cert.pem - ${POBP_SSL_CERT_KEY}:/home/nonroot/cert.key
-
после внесения изменений примените изменения, выполнив:
docker compose -f docker-compose-194.yaml stop proto-nginx proto-auth docker compose -f docker-compose-194.yaml rm proto-nginx proto-auth docker volume rm protoobp_postgres_data docker compose -f docker-compose-194.yaml up -d
Изменение лицензионной информации
Изменение лицензионного ключа
При необходимости обновления лицензионного ключа, например, при смене с ознакомительной на продуктивную или при продлении ознакомительной лицензии, выполните следующие шаги:
-
Обновите значения переменных на сервере ProtoOBP Backend в файле
/opt/protoobp/.env
:POBP_LICENSE_KEY
– введите значение, указанное в новом лицензионном сертификате в поле “лицензионный ключ”POBP_LICENSE_COMPANY_NAME
– введите значение, указанное в новом лицензионном сертификате в поле “имя компании для лицензии” (если изменилось)
-
Примените изменения, выполнив команду:
docker compose -f docker-compose-194.yaml up -d
-
Проверьте логи компонента
proto-trace-processor
:docker compose -f docker-compose-194.yaml logs proto-trace-processor
Зайдите в раздел
Диагностика
>Логи бэкенда
>proto-trace-processor
Убедитесь, что в логе не содержатся сообщения, связанные с ошибкой активации лицензии сразу после перезапуска компонента.
Изменение токена доступа к артефактам
В случае изменения значения токена доступа к артефактам (поля “логин/имя пользователя” и/или “пароль/токен” в лицензионном сертификате), выполните следующие шаги:
-
На сервере ProtoOBP Backend обновите учетные данные для доступа к Docker репозиторию:
# удаление старых аутентификационных данных docker logout registry.git.proto.group # ввод новых аутентификационных данных docker login --username <USERNAME> registry.git.proto.group
Ваш
<USERNAME>
и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. -
При использовании собственного прокси-репозитория (Nexus, Artifactory и тд) обновите учетные данные для подключения к репозиторию
registry.git.proto.group
на данные из нового лицензионного сертификата. -
При использовании скачивания артефактов ProtoOBP напрямую из репозитория вендора, например, в CI/CD пайплайнах – обновите значение токена в этих пайплайнах на значение из нового лицензионного сертификата.
Возможные проблемы при установке и их устранение
-
При ошибка контейнера
proto-storage
убедитесь, что был успешно выполнен пункт п.3 из инструкции выше. -
При ошибке или постоянном рестарте контейнеров
proto-data-analyzer-router
,
proto-data-analyzer-worker-1
,
proto-data-analyzer-worker-2
замените тег образов в файлеdocker-compose-194.yaml
c194
на194-non-avx
и перезапустите компоненты командойdocker compose -f docker-compose-194.yaml up -d
Использование локальных Docker репозиториев
Данный шаг является опциональным.
Если вы используете собственный Docker репозиторий, вы можете настроить проксирование запросов в репозиторий Proto OBP.
Параметры подключения к Docker репозиторию Proto OBP:
- адрес репозитория, используемый в файлах конфигурации Proto OBP по умолчанию:
registry.git.proto.group/protogroup/protoobp-artifacts
- адрес репозитория, который необходимо указать при настройке proxy-репозитория:
https://registry.git.proto.group
- Project ID (если требуется):
protogroup/protoobp-artifacts
- необходим сетевой доступ от сервера локального Docker репозитория к следующим адресам (например, через proxy-сервер):
https://git.proto.group
для аутентификации в Docker репозиторииhttps://registry.git.proto.group
для скачивания Docker образов
-
добавьте новый Remote Repository:
Administration
>Repositories
>Add Repositories
>Remote Repository
-
выберите тип репозитория:
Docker
-
в настройках укажите:
Repository Key
:protoobp-proxy
(внутреннее имя репозитория)URL
:https://registry.git.proto.group/
Project ID
:protogroup/protoobp-artifacts
User Name
: значение берется из лицензионного сертификатаPassword / Access Token
: значение берется из лицензионного сертификата
-
далее в настройках ProtoOBP в файле
.env
укажите, заменивartifactory.local
на актуальный адрес сервера Artifactory:DOCKER_REGISTRY="artifactory.local/protoobp-proxy"
-
добавьте новый Repository:
Repository
>Repositories
>Create repository
-
на этапе
Select Recipe
выберите типdocker (proxy)
-
в настройках укажите:
- Name:
protoobp-proxy
(внутреннее имя репозитория) Proxy
>Remote storage
:https://registry.git.proto.group
HTTP
>Authentication
:Authentication type
:Username
Username
: значение берется из лицензионного сертификатаPassword
: значение берется из лицензионного сертификата
- Name:
-
далее в настройках ProtoOBP в файле
.env
укажите, заменитеnexus.local
на актуальный адрес сервера Nexus:DOCKER_REGISTRY="nexus.local/protoobp/protoobp-artifacts"
- перед использованием нового репозитория может потребоваться выполнить команду
docker login
Список образов для клонирования
-
Список образов для установки бэкенд сервера ProtoOBP:
registry.git.proto.group/protoobp/protoobp-artifacts/proto-alert-monitor:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-alert-processor:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-alertmanager:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-auth:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-backend-logs-viewer:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-aggregator:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-api:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-refresh:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-router:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-router:194-non-avx registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-worker-1:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-worker-1:194-non-avx registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-worker-2:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-data-analyzer-worker-2:194-non-avx registry.git.proto.group/protoobp/protoobp-artifacts/proto-database:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-kafka:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-metric-adapter:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-metric-analyzer:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-metric-exporter:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-metric-receiver:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-metric-storage:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-nginx:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-otel-collector:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-postgresql:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-storage:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-trace-processor:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-trace-receiver:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-ui:194 registry.git.proto.group/protoobp/protoobp-artifacts/proto-zookeeper:194 registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:194
-
Список образов для подключения сбора метрик и трейсов (потребуется для подключения приложений и серверов к системе):
registry.git.proto.group/protoobp/protoobp-artifacts/cluster-agent:7.40.3 registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3 registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3-jmx registry.git.proto.group/protoobp/protoobp-artifacts/pobp-lib-python-init:2.3.1 registry.git.proto.group/protoobp/protoobp-artifacts/pobp-lib-js-init:2.3.1 registry.git.proto.group/protoobp/protoobp-artifacts/pobp-lib-java-init:2.3.1
Установка ProtoOBP Backend на нескольких серверах
Для отказоустойчивости или распределения нагрузки возможно разворачивание ProtoOBP Backend на нескольких серверах.
Инструкции предоставляются по запросу.