Установка ProtoOBP Backend

Обновлено 20.10.2026
Установка ProtoOBP Backend на один сервер с помощью скрипта установки или вручную, типовые проблемы при установке.

На этой странице:

С использованием скрипта установки (рекомендуется)

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

  • установка только на 1 сервере (пилот или небольшая продуктивная инсталляция)
  • скачивание образов производится напрямую из репозитория вендора.

В ходе работы скрипта будут запрошены данные, содержащиеся в лицензионном сертификате от вендора (должен быть заранее получен, если у вас еще нет сертификата – обратитесь к компании-партнеру Proto Observability или вендору по email ask@proto.group).

Для установки с помощью скрипта:

  • Скопируйте следующую команду и выполните в командной строке:

    curl -sSL 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 на одном сервере:

  1. Скачайте и распакуйте архив с файлами дистрибутива protoobp-backend-dist-singlehost-203.tar.gz:

    • скачайте файл с помощью curl:

      curl --header "PRIVATE-TOKEN:<your_token>" \
      "https://git.proto.group/api/v4/projects/100/packages/generic/protoobp-backend-dist/203/protoobp-backend-dist-singlehost-203.tar.gz" \
      --output protoobp-backend-dist-singlehost-203.tar.gz
      

      где <your_token> – ваш пароль, указанный в лицензионном сертификате, полученном ранее от вендора.

    • cоздайте папку /opt/protoobp на сервере и распакуйте в нее содержимое архива:

      mkdir -p /opt/protoobp && tar -xzvf protoobp-backend-dist-singlehost-203.tar.gz -C /opt/protoobp
      
  2. Внесите данные лицензии и вашего окружения.

    • Перейдите в каталог Backend (/opt/protoobp) и переименуйте файл env_template-203 в .env:

      cd /opt/protoobp && mv env_template-203 .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, указанная здесь директория должна быть создана вами вручную.

    • Обновлено в версии 203. Для работы функций ИИ необходимо подключить внешнюю языковую модель по OpenAI-совместимому протоколу. Одна и та же модель обслуживает раздел «AI-аналитик» (появился в версии 203) и AI-функции модуля «Инциденты» (AI-сводка, AI-расследование, автоматический черновик постмортема). Задайте три переменные — без них платформа запустится, но функции ИИ будут отключены: раздел «AI-аналитик» покажет сообщение «Функции ИИ недоступны», а в модуле «Инциденты» будут недоступны кнопки «Суммаризировать», «Расследовать» и «Постмортем»:

      • POBP_AI_LLM_BASE_URL – базовый адрес внешней модели. Пример конфигурации:
        POBP_AI_LLM_BASE_URL=https://api.deepseek.com
        
      • POBP_AI_LLM_API_KEY – ключ доступа к модели (передаётся как Authorization: Bearer). Является секретом, в журналах не логируется. Пример конфигурации:
        POBP_AI_LLM_API_KEY=sk-...
        
      • POBP_AI_LLM_MODEL – имя модели (без префикса провайдера). Пример конфигурации:
        POBP_AI_LLM_MODEL=deepseek-chat
        
    • Новое в версии 202. В версии 202 добавлены два сервиса отчётности — чтобы отчёты уходили получателям, задайте в файле .env параметры почтового сервера:

      POBP_REPORT_RUNNER_SMTP_HOST=                # адрес почтового сервера
      POBP_REPORT_RUNNER_SMTP_USER=                # учётная запись отправителя
      POBP_REPORT_RUNNER_SMTP_PASSWORD=            # пароль отправителя, секрет
      

      Без параметров почтового сервера платформа запустится штатно, но отчёты отправляться не будут.

      Служебная учётная запись отчётности заводится автоматически при старте, но её пароль одинаков во всех инсталляциях. В промышленной эксплуатации его следует перевыпустить и указать новое значение в .env переменной POBP_REPORT_RUNNER_KEYCLOAK_CLIENT_SECRET.

    • Новое в версии 203. Раздел «Диагностика» > «Реестр конфигурации» показывает, какие переменные окружения реально действуют в каждом запущенном сервисе. Сервисы отправляют эти сведения в proto-api-manager, запросы подписываются общим служебным ключом. Сгенерируйте его и укажите в .env — при пустом значении реестр остаётся пустым, на остальную работу платформы это не влияет (при установке скриптом ключ генерируется автоматически):

      POBP_CONFIG_REPORT_API_KEY=<результат команды openssl rand -hex 32>
      

      Ключ должен быть одинаковым во всей инсталляции — он один и тот же для proto-api-manager и для сервисов, которые ему рапортуют.

      Значения самих переменных, похожих на секреты (*_PASSWORD, *_SECRET, *_TOKEN, *_KEY), не покидают сервис — в реестр они попадают замаскированными.

  3. Создайте каталоги для хранения данных и установите на них необходимые права доступа. Ниже указаны команды со значением 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/logs && chown -R 1000:1000 /opt/protoobp/data/logs
    mkdir -p /opt/protoobp/data/metrics && chown -R 1000:1000 /opt/protoobp/data/metrics
    mkdir -p /opt/protoobp/data/kafka && chown -R 65532:65532 /opt/protoobp/data/kafka
    mkdir -p /opt/protoobp/data/zookeeper && chown -R 1001:1001 /opt/protoobp/data/zookeeper
    
  4. Создайте файлы alertrules.yml, alertrules-logs.yml и alertpolicies.yml и измените владельца файлов на служебного пользователя (nonroot). Файл alertrules-logs.yml (правила алертинга по логам) нужен начиная с версии 204:

    touch /opt/protoobp/alertrules.yml /opt/protoobp/alertrules-logs.yml /opt/protoobp/alertpolicies.yml && \
    chown 65532:65532 /opt/protoobp/alertrules.yml /opt/protoobp/alertrules-logs.yml /opt/protoobp/alertpolicies.yml
    
  5. Скачайте 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-203.yaml pull
      

      Должно начаться скачивание необходимых образов.

    • После скачивания Docker образов, запустите компоненты Proto OBP Backend сервера, выполнив:

      docker compose -f docker-compose-203.yaml up -d
      

При первом запуске контейнеры proto-storage, proto-data-aggregator, proto-trace-processor и proto-metric-receiver инициализируются, после чего перезапускаются, что ведет к ошибке в выводе docker compose – это нормальная ситуация, поэтому в случае появления ошибки при первом запуске, отмените выполнение текущей команды (CTRL+c) повторите команду:

docker compose -f docker-compose-203.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-ai-agent-assistant       Up 3 minutes (healthy)
proto-ai-agent-investigator    Up 3 minutes (healthy)
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-api-manager              Up 3 minutes (healthy)
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-graph-builder            Up 3 minutes (healthy)
proto-incident-manager         Up 3 minutes (healthy)
proto-job-runner               Up 3 minutes (healthy)
proto-kafka                    Up 3 minutes (healthy)
proto-log-storage              Up 3 minutes (healthy)
proto-mcp                      Up 3 minutes (healthy)
proto-metric-adapter           Up 3 minutes (healthy)
proto-metric-analyzer          Up 3 minutes (healthy)
proto-metric-exporter          Up 3 minutes (healthy)
proto-metric-receiver          Up 3 minutes (healthy)
proto-metric-storage           Up 3 minutes (healthy)
proto-nginx                    Up 3 minutes (healthy)
protoobp-agent                 Up 3 minutes (healthy)
proto-otel-collector           Up 3 minutes (healthy)
proto-postgresql               Up 3 minutes (healthy)
proto-report-renderer          Up 3 minutes (healthy)
proto-report-runner            Up 3 minutes (healthy)
proto-storage                  Up 3 minutes (healthy)
proto-trace-processor          Up 3 minutes (healthy)
proto-ui                       Up 3 minutes (healthy)
proto-zookeeper                Up 3 minutes (healthy)

После сообщения об успешном запуске всех контейнеров, перейдите в браузере по адресу, указанному в UI_URL (адрес сервера).

Стандартная учетная запись для доступа к веб-интерфейсу – логин: admin, пароль: protoobp.

Возможные проблемы при установке и их устранение

  1. При ошибка контейнера proto-storage убедитесь, что был успешно выполнен пункт п.3 из инструкции выше.

  2. При ошибке или постоянном рестарте контейнеров
    proto-data-analyzer-router,
    proto-data-analyzer-worker-1,
    proto-data-analyzer-worker-2
    замените тег образов в файле docker-compose-203.yaml c 203 на 203-non-avx и перезапустите компоненты командой

    docker compose -f docker-compose-203.yaml up -d