Установка агентов Proto Observability Platform
На этой странице:
- Описание
- Linux
- Windows
- Docker
- Kubernetes
- Работа агента через proxy
- Файлы конфигурации агента
- Проверка работы агента
- Логи агента
Описание
ProtoOBP агент автоматически собирает метрики, трейсы и логи и отправляет полученные данные на ProtoOBP Backend сервер.
Сбор трейсов приложения осуществляется с помощью трейсеров, автоматически инструментируя код следующих языков программирования:
Сбор метрик осуществляется автоматически для всех поддерживамых технологий
Схема взаимодействия компонентов ProtoOBP
Поддерживаемые технологии
Linux
Linux агент – установка
Агент работает на всех основных DEB/RPM дистрибутивах ОС Linux. Подробнее
-
Скачайте и установите пакет с агентом для вашей ОС
curl --header "PRIVATE-TOKEN:<your_token>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent_7.40.2_amd64.deb" --output protoobp-agent_7.40.2_amd64.deb apt install ./protoobp-agent_7.40.2_amd64.deb
Значение
<your_token>
берется из лицензионного сертификата, полученного ранее от вендора, из раздела “Учетные данные -> Пароль”curl --header "PRIVATE-TOKEN:<your_token>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent_7.40.2_amd64.rpm" --output protoobp-agent_7.40.2_amd64.rpm rpm -ivh protoobp-agent_7.40.2_amd64.rpm
Значение
<your_token>
берется из лицензионного сертификата, полученного ранее от вендора, из раздела “Учетные данные -> Пароль”.В случае появления ошибки на Альт или Роса Линукс:
ошибка: Неудовлетворенные зависимости: glibc-common нужен для protoobp-agent-1:7.40.2-1.x86_64
установку агента необходимо выполнить следующей командой:
rpm -ivh --nodeps protoobp-agent_7.40.2_amd64.rpm
-
Убедитесь что агент корректно установлен, выполнив:
protoobp-agent version
Результат выполнения команды:
Agent 7.40.2 - Meta: git.8.d01c4fd - Commit: d01c4fd - Serialization version: v5.0.32 - Go version: go1.18.8
Linux агент – конфигурация
-
По умолчанию файл конфигурации агента расположен в каталоге
/etc/protoobp-agent/
-
Создайте файл
protoobp.yaml
:vim /etc/protoobp-agent/protoobp.yaml
и укажите в нем следующее:
api_key: my_api_key pobp_url: http://protoobp-backend/metrics apm_config: apm_pobp_url: http://protoobp-backend:9080 telemetry: enabled: false
api_key: my_api_key pobp_url: http://protoobp-backend apm_config: apm_pobp_url: http://protoobp-backend telemetry: enabled: false
Где,
api_key
- ваш ключpobp_url
- адрес ProtoOBP Backend сервераapm_pobp_url
- адрес ProtoOBP Backend сервера
Полный пример конфигурации, можно посмотреть в файле
protoobp.yaml.example
-
Если на хосте запускаются
Docker
контейнеры, то необходимо добавить пользователяpobp-agent
в группу Docker, чтобы агент мог собирать метрики по работе контейнеров, в дополнение к метрикам самого хоста:usermod -a -G docker pobp-agent
-
Запустите агента
systemctl start protoobp-agent
При успешной настройке агента вы сможете увидеть новый хост в разделе
Инфраструктура
>Хосты
в течение одной-двух минут.
Обратите внимание
Для отображения нового хоста следует обновить страницу браузера целиком (кнопкаОбновить
в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).
Linux агент – управление
ProtoOBP Agent запускается как systemd служба - protoobp-agent.
Действие | Команда |
---|---|
Запуск агента | systemctl start protoobp-agent |
Остановка агента | systemctl stop protoobp-agent |
Перезапуск службы | systemctl restart protoobp-agent |
Windows
Windows агент – установка
-
Скачайте
.msi
установщик с агентом (замените<YOUR_TOKEN>
на значение вашего токена из вашего лицензионного сертификата)curl --header "PRIVATE-TOKEN:<YOUR_TOKEN>" "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent-7.40.2-x64.msi" --output protoobp-agent-7.40.2-x64.msi
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $webClient = New-Object System.Net.WebClient $webClient.Headers.Add("PRIVATE-TOKEN", "<YOUR_TOKEN>") $webClient.DownloadFile( "https://git.proto.group/api/v4/projects/125/packages/generic/protoobp-agent/7.40.2/protoobp-agent-7.40.2-x64.msi", "protoobp-agent-7.40.2-x64.msi" )
-
Запустите
.msi
установщик в графическом режиме и следуйте указаниям мастера установки агента, разрешите административные привилегии в момент запроса.- Для консольной установки используйте PowerShell команду (запуск PowerShell должен быть от Администратора):
Start-Process -Wait msiexec -ArgumentList '/qn /i protoobp-agent-7.40.2-x64.msi APIKEY="<YOUR-TOKEN>"'
- Для консольной установки используйте PowerShell команду (запуск PowerShell должен быть от Администратора):
GMSA
Использование GMSA не является обязательным. GMSA для установки и запуска агент может применяться в доменной структуре с ограничивающими доменными политиками безопасности или если при использовании стандартного способа установки агенту не хватает прав на запуск сервисов из-за ограничений безопасности.
Для использования агента с GMSA выполните следующие шаги:
-
Создайте Security Group и добавьте в нее все компьютеры, на которых будет установлен агент с использованием GMSA:
- Откройте
Active Directory Users and Computers
(ADUC). - Перейдите в нужный
Organizational Unit
(OU). - Сделайте клик правой кнопкой мыши и выберите
New > Group
. - Назовите группу, например,
ProtoOBPAgentsGroup
- Установите необходимый скоуп группы, например
Domain local
. - Установите тип группы:
Security
. - Добавьте в эту группу все компьютеры, которые будут использовать GMSA для установки и запуска агента.
- Откройте
-
Создайте GMSA c именем
ProtoobpGMSA
:-
Октройте PowerShell с привилегиями Администратора.
-
Выполните следующую команду для создания GMSA, замените
<YOUR_DOMAIN_CONTROLLER_NAME>
на DNS имя вашего контроллера домена:New-ADServiceAccount ` -Name ProtoobpGMSA ` -DNSHostName <YOUR_DOMAIN_CONTROLLER_NAME> ` -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroup
Убедитесь, что команда выполнена без ошибок.
В случае ошибок:
- создайте Kds ключ:
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
- проверьте, что указанная группа существует:
Get-ADGroup -Identity ProtoOBPAgentsGroup
- выполните создание GMSA еще раз:
New-ADServiceAccount ` -Name ProtoobpGMSA ` -DNSHostName <YOUR_DOMAIN_CONTROLLER_NAME> ` -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroup
- создайте Kds ключ:
-
-
Подключите GMSA и убедитесь, что GMSA может быть использована на целевой машине. На целевой машине откройте PowerShell и выполните:
Install-ADServiceAccount -Identity ProtoobpGMSA
Убедитесь, что команда выполнена без ошибок.
Проверьте, что GMSA успешно установлена:
Test-ADServiceAccount -Identity ProtoobpGMSA
Ожидаемый вывод команды:
True
Устранение неполадок подключения GMSA на целевую машину:
- проверьте, какие группы имеют разрешение использовать GMSA:
если группа
Get-ADServiceAccount -Identity ProtoobpGMSA -Properties PrincipalsAllowedToRetrieveManagedPassword
ProtoOBPAgentsGroup
отсутствует в списке в разделеPrincipalsAllowedToRetrieveManagedPassword
, обновите GMSA и добавьте группуProtoOBPAgentsGroup
:Set-ADServiceAccount -Identity ProtoobpGMSA -PrincipalsAllowedToRetrieveManagedPassword ProtoOBPAgentsGroup
- проверьте, что машина является членом группы:
убедитесь, что в выводе есть имя текущего компьютра, если его нет – добавьте компьютер в группу:
Get-ADGroupMember -Identity ProtoOBPAgentsGroup
Add-ADGroupMember -Identity ProtoOBPAgentsGroup -Members <ComputerName>
- выполните обновление групповых политик, удалите Kerberos тикеты и перезагрузите компьютер:
gpupdate /force klist purge Restart-Computer
- проверьте, какие группы имеют разрешение использовать GMSA:
-
Установите агента с использованием GMSA:
- Если агент ранее был установлен стандартным методом (запуск от новой учетной записи
pobpagentuser
, созданной на этапе установки агента), то необходимо полностью удалить агента и его файлы, перед использованием установки с использованием GMSA.- Через
Control Panel
удалите пакет агента (через графический интерфейс). - Вручную удалите папку
C:\ProgramData\Protoobp
(обязательный шаг, иначе последующая установка завершится ошибкой)
- Через
- Запустите
.msi
установщик агента. - Введите запрашиваемые ключ и адрес бэкенд сервера
- На этапе выбора учётной записи (
Please enter the username
) укажите созданную и установленную на этой машине GMSA в формате:<ВАШ_ДОМЕН>\ProtoobpGMSA$
– обязательно с символом$
в конце. Поле пароль обязательно оставьте пустым. - Зайдите в веб-интерфейс агента, и выполните конфигурацию агента через веб-интерфейс.
- Откройте
services.msc
и убедитесь, что агент запускается от имени доменной GMSA:
- Если агент ранее был установлен стандартным методом (запуск от новой учетной записи
Windows агент – конфигурация
-
Запустите веб-консоль управления агентом
ProtoOBP Agent Manager
.
-
Откроется веб-браузер с консолью управления. В случае запроса изменения настроек безопасности – добавьте в доверенные узлы
http://127.0.0.1
иabout:blank
.
-
Перейдите в раздел
Settings
и в конфигурации агента укажите следующее:api_key: my_api_key pobp_url: http://<адрес_бекенд_сервера_protoobp>/metrics apm_config: apm_pobp_url: http://<адрес_бекенд_сервера_protoobp>:9080 enabled: true telemetry: enabled: false
Параметры:
api_key
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>/metrics
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>:9080
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агентаapi_key: my_api_key pobp_url: http://<адрес_бекенд_сервера_protoobp> apm_config: apm_pobp_url: http://<адрес_бекенд_сервера_protoobp> enabled: true telemetry: enabled: false
Параметры:
api_key
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агентаПример окна конфигурации:
-
Перезапустите агента, для этого консоли управления кликните на
Restart Agent
.При успешной настройке агента вы сможете увидеть новый хост в разделе
Инфраструктура
>Хосты
в течение одной-двух минут.
Обратите внимание
Для отображения нового хоста следует обновить страницу браузера целиком (кнопкаОбновить
в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).
Windows агент – управление
-
Запустите ProtoOBP Agent Manager:
-
Для перезапуска агента в левом меню выберите и нажмите на раздел
Restart Agent
Также после запуска ProtoOBP Agent Manager в системном трее доступна иконка с контекстным меню агента для управления агентом:
Для команд ниже используйте только привилегированную командную строку (run as Administrator)
Действие | Команда |
---|---|
Запуск агента | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" start-service |
Остановка агента | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" stopservice |
Перезапуск службы | "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" restart-service |
Windows агент – типовые проблемы
Сервис не запускается
В случае, если службы Агента не запускаются с ошибкой
Access is denied
:
- Убедитесь, что у служебного пользователя, от имени которого запускается агент, есть права
Log on as a service
. Инсталлятор добавляет это право, но в случае использования групповых доменнных политик это право может быть отозвано у служебной учетной записи. Необходимо настроить групповые политики на разрешение служебному пользователю осуществлятьLog on as a service
.- откройте
Computer Configuration
>Windows Settings
>Security Settings
>Local Policies
>User Rights Assignment
- локальный пользователь, создаваемый в процессе установки (
pobpagentuser
): - в случае использования GMSA –
DomainName\ProtoobpGMSA$
:
- откройте
- Убедитесь, что служебный пользователь
pobpagentuser
является членом группыUsers
на сервере. В случае использования GMSA такое право должно быть у этой учетной записи.
Ошибка “Сервис помечен для удаления”
В случае запуска процедуры удаления агента, файлы агента удаляются, но службы агента остаются видимы в системе, при попытке их удаления через командую строку выводится сообщение о том, что сервис “помечен для удаления”. В этом случае потребуется перезагрузка машины, чтобы произошло полное удаление сервисов. После перезагрузки возможно заново установить пакет агента. Это особенность операционной системы Windows.
Docker
Запуск Docker агента (отдельный контейнер)
-
Подключитесь к Docker репозиторию ProtoOBP выполнив команду:
sudo docker login --username <USERNAME> registry.git.proto.group
Ваш
<USERNAME>
и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. Пароль вводится интерактивно. -
Запустите агента
docker run -d \ --cgroupns host \ --pid host \ --name protoobp-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e POBP_API_KEY=<your_api_key> \ -e POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp>/metrics \ -e POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp>:9080 \ registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3
Переменные окружения:
POBP_API_KEY
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
POBP_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>/metrics
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>:9080
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агентаdocker run -d \ --cgroupns host \ --pid host \ --name protoobp-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e POBP_API_KEY=<your_api_key> \ -e POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp> \ -e POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp> \ registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3
Переменные окружения:
POBP_API_KEY
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
POBP_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агента
Запуск Docker агента (docker compose)
-
Подключитесь к Docker репозиторию ProtoOBP выполнив команду:
sudo docker login --username <USERNAME> registry.git.proto.group
Ваш
<USERNAME>
и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”. Пароль вводится интерактивно. -
Добавьте в ваш docker-compose.yaml файл следующее:
protoobp-agent: container_name: protoobp-agent image: registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3 pid: host volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /proc/:/host/proc/:ro - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro - /etc/os-release:/host/etc/os-release:ro environment: - POBP_API_KEY=<your_api_key> - POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp>/metrics - POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp>:9080
Переменные окружения:
POBP_API_KEY
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
POBP_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>/metrics
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>:9080
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агентаprotoobp-agent: container_name: protoobp-agent image: registry.git.proto.group/protoobp/protoobp-artifacts/protoobp-agent:7.40.3 pid: host volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /proc/:/host/proc/:ro - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro - /etc/os-release:/host/etc/os-release:ro environment: - POBP_API_KEY=<your_api_key> - POBP_POBP_URL=http://<адрес_бекенд_сервера_protoobp> - POBP_APM_POBP_URL=http://<адрес_бекенд_сервера_protoobp>
Переменные окружения:
POBP_API_KEY
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
POBP_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаPOBP_APM_POBP_URL
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агента -
Запустите агента, выполнив
docker compose up -d protoobp-agent
Kubernetes
После установки агента в системе появятся поды агента:
protoobp
protoobp-cluster-agent
Необходимые сетевые порты для работы Kubernetes агента:
Source Name | Destination Name | Destination PORT/PROTO | Description |
---|---|---|---|
поды агента (protoobp и protoobp-cluster-agent ) |
proto backend | 443/tcp | отправка данных (метрики, трейсы, логи) от агента на бэкенда |
под агента protoobp |
под агента protoobp-cluster-agent |
5005/tcp | подключение агента к cluster-агенту |
поды приложений | под агента protoobp |
8125/udp | отправка метрик от приложения к агенту |
поды приложений | под агента protoobp |
8126/tcp | отправка трейсов от приложения к агенту |
IP k8s control plane | IP k8s ноды | 8000/tcp | подключение webhook автоматической инструментации приложений |
Установка Kubernetes агента
Обратите внимание
Для работы с чартами Proto OBP необходимо использоватьhelm
версии 3.x
– версия 2.x
не подходит, так как формат helm
чартов отличается.
-
Добавьте
helm
репозиторий ProtoOBP:helm repo add --username <my_login> --password <my_password> protoobp https://git.proto.group/api/v4/projects/125/packages/helm/stable
Ваши логин и пароль указаны в лицензионном сертификате, полученном ранее от вендора, в разделе “Учетные данные”.
-
Добавьте
secret
для скачивания Docker образов из репозитория ProtoOBP. Для этого воспользуйтесь готовым скриптомscript.sh
:# Укажите имя пользователя login="my_login" # Укажите пароль password="my_password" # Укажите адрес репозитория registry="registry.git.proto.group" # Укажите namespace в котором будет установлен агент (по умолчанию protoobp) namespace="protoobp" ###################### # Скрипт set -o errexit echo 'Создаем Secret' kubectl create namespace ${namespace} kubectl create secret docker-registry protoobp-registry --docker-username=${login} --docker-password=${password} --docker-server=${registry} --namespace=${namespace}
-
Создайте файл
values.yaml
с конфигурацией агентаtargetSystem: "linux" commonLabels: {} registry: registry.git.proto.group/protoobp/protoobp-artifacts # необходимо изменить в случае использования собственного Docker репозитория protoobp: apiKey: <ВАШ_API_KEY> # указан в лицензионном сертификате clusterName: <ИМЯ_КЛАСТЕРА> # задается вручную в соответствии с текущим реальным именем кластер pobp_url: http://<адрес_бекенд_сервера_protoobp>/metrics pobp_apm_url: http://<адрес_бекенд_сервера_protoobp>:9080 logLevel: INFO processAgent: enabled: false kubelet: tlsVerify: false clusterAgent: image: name: cluster-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry" env: ## этот раздел и переменная ниже добавляется только в случае использования локального репозитория Docker образов для компонентов Proto Observability Platform - name: POBP_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY value: docker.intranet/protoobp/protoobp-artifacts ## здесь указывается адрес локального репозитория - зеркала образов agents: image: name: protoobp-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry"
Параметры:
<ВАШ_API_KEY>
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>/metrics
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>:9080
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агента<ИМЯ_КЛАСТЕРА>
имя кластера, которое будет отображаться в интерфейсе Proto Observability Platform targetSystem: "linux" commonLabels: {} registry: registry.git.proto.group/protoobp/protoobp-artifacts # необходимо изменить в случае использования собственного Docker репозитория protoobp: apiKey: <ВАШ_API_KEY> # указан в лицензионном сертификате clusterName: <ИМЯ_КЛАСТЕРА> # задается вручную в соответствии с текущим реальным именем кластер pobp_url: http://<адрес_бекенд_сервера_protoobp> pobp_apm_url: http://<адрес_бекенд_сервера_protoobp> logLevel: INFO processAgent: enabled: false kubelet: tlsVerify: false clusterAgent: image: name: cluster-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry" env: ## этот раздел и переменная ниже добавляется только в случае использования локального репозитория Docker образов для компонентов Proto Observability Platform - name: POBP_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY value: docker.intranet/protoobp/protoobp-artifacts ## здесь указывается адрес локального репозитория - зеркала образов agents: image: name: protoobp-agent tag: 7.40.3 pullSecrets: - name: "protoobp-registry"
Параметры:
<ВАШ_API_KEY>
значение, указанное в лицензионном сертификате, полученном ранее от вендора, в разделе Учетные данные -> Пароль
pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
- адрес вашего ProtoOBP Backend сервера, доступного для агентаapm_pobp_url
строка вида http://<адрес_бекенд_сервера_protoobp>
, где<адрес_бекенд_сервера_protoobp>
– адрес вашего ProtoOBP Backend сервера, доступного для агента<ИМЯ_КЛАСТЕРА>
имя кластера, которое будет отображаться в интерфейсе Proto Observability Platform -
Установите
helm
чарт в ваш Kubernetes кластер (в примере ниже исползуется неймспейсprotoobp
)Обратите внимание
Для изменения параметров агентов Proto OBP допустимы только изменения в файлеvalues.yaml
, изменять сам чарт не нужно.helm install protoobp -f values.yaml protoobp/protoobp --namespace protoobp
Использование hostPath ноды
Поды агента имеют несколько hostPath mount:
Имя Mount | Описание |
---|---|
procdir |
Подключается в режиме read-only . Используется системными проверками. |
cgroups |
Подключается в режиме read-only . Используется для сбора метаданных контейнеров. |
os-release-file |
Подключается в режиме read-only . Используется для определения ОС. |
passwd |
Подключается в режиме read-only . Используется для ассоциирования процессов с пользователями. |
runtimesocketdir |
Подключается в режиме read-only . Используется для сбора метрик контейнеров. |
dsdsocket |
Подключается в режиме read-write . Используется для приема метрик, опционально также может быть включен порт. |
apmsocket |
Подключается в режиме read-write . Используется для приема трейсов, опционально также может быть включен порт. |
Работа в непривилегированном режиме
Для максимальной совместимости и автоматизации сбора данных агент в контейнере по умолчанию запускается от пользователя root
.
Использование не root
пользователя может ограничить работу некоторых интеграций, которым необходимы данные хоста (ноды).
Пользователя, под которым запускается агент в контейнере, можно изменить, указав в values.yaml
ID необходимого пользователя.
Обратите внимание
Для корректной работы агента в случае изменения ID пользователя необходима предварительная настройка хоста (ноды):
- пользователь, под которым запускается агент, должен иметь доступ к сокету
Docker
,CRI-O
илиcontainerd
(в зависимости от используемого рантайма).
Внутри контейнера агента создается пользователь pobp-agent
c ID = 101, рекомендуется использовать этого пользователя для предоставления доступа к сокету.
protoobp:
...
securityContext:
runAsUser: <USER_ID>
# UID пользователя, под которым будет запускаться Proto OBP агент
supplementalGroups:
- <GROUP_ID>
# ID группы, которая является владельцем сокета Docker или containerd
Дополнительная конфигурация для OpenShift
Особенности настройки агентов Proto OBP с OpenShift:
- необходимо указать создание SCC (Security Context Constraints) для агентов
- необходимо указать путь к сокету CRI, так как OpenShift использует CRI-O в качестве рантайма контейнеров
- необходимо добавить
tolerations
для запуска агентов наmaster
иinfra
нодах кластера
Для этого в файле values.yaml
в разделе agents
добавьте:
protoobp:
criSocketPath: /var/run/crio/crio.sock
...
agents:
useHostNetwork: true
podSecurity:
securityContextConstraints:
create: true
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/infra
operator: Exists
clusterAgent:
podSecurity:
securityContextConstraints:
create: true
...
Изменение параметров Kubernetes агента
После внесения изменений в файл values.yaml
можно применить изменения с помощью команды:
helm upgrade protoobp -f values.yaml protoobp/protoobp --namespace protoobp
Или воспользуйтесь полным удалением агента и переустановкой.
Удаление Kubernetes агента
Удалить ProtoOBP агента из Kubernetes кластера, можно выполнив (используемый в примере неймспейс – protoobp
, замените при использовании нестандартного неймспейса):
helm uninstall protoobp -n protoobp
Работа агента через proxy
-
Настройка прокси-сервера. В качестве примера может использоваться прокси-сервер Nginx и минимальная конфигурация:
user www-data; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; load_module /usr/lib/nginx/modules/ngx_stream_module.so; events { worker_connections 1024; } stream { server { listen 80; proxy_ssl_verify off; proxy_ssl on; proxy_pass proto-backend:443; } }
Где
proto-backend
– адрес вашего бэкенд сервера. -
Настройка агента для использования прокси. В используемых адресах вместо адресов бэкенда укажите адрес прокси сервера:
api_key: your-api-key pobp_url: http://nginx-proxy skip_ssl_validation: true apm_config: apm_pobp_url: http://nginx-proxy telemetry: enabled: false database_monitoring: metrics: pobp_url: nginx-proxy activity: pobp_url: nginx-proxy samples: pobp_url: nginx-proxy
Где
nginx-proxy
– адрес вашего прокси сервера. -
Примените изменения, перезапустив агента.
Файлы конфигурации агента
Основной конфигурационный файл агента:
Платформа | Путь и имя файла |
---|---|
Linux | /etc/protoobp-agent/protoobp.yaml |
Windows | %ProgramData%\Protoobp\protoobp.yaml |
Файлы конфигурации модулей для мониторинга технологий находятся в папке <путь к папке конфигурации>/conf.d/<технология>.d/.
.
Путь к папке конфигурации зависит от платформы:
Платформа | Путь |
---|---|
Linux | /etc/protoobp-agent/conf.d/ |
Windows | %ProgramData%\Protoobp\conf.d |
Например, для мониторинга MySQL на агента Linux путь к файлу конфигурации MySQL будет иметь вид:
/etc/protoobp-agent/conf.d/mysql.d/conf.yaml
Проверка работы агента
Платформа | Команда |
---|---|
Docker | sudo docker exec -it protoobp-agent agent status |
Kubernetes | kubectl exec -it <AGENT_POD_NAME> -- agent status |
Linux | sudo protoobp-agent status |
Windows | Для команды ниже используйте только привилегированную командную строку (run as Administrator) "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" status |
Логи агента
Логи работы агента располагаются в следующих локациях:
Платформа | Путь |
---|---|
Linux | /var/log/protoobp/ |
Windows | C:\ProgramData\Protoobp\logs |
Логи установки агента располагаются в следующих локациях:
Платформа | Путь и имя файла |
---|---|
Linux | $(pwd)/protobop-agent-install.log |
Windows | %TEMP%\MSI*.LOG |