Наблюдаемость приложения посредством внедрения во время сборки контейнера
Внедрение модуля кода Ключ-АСТРОМ в контейнер во время процесса его сборки.
Этот метод инструментирования приложений имеет ограничения при связывании рабочих нагрузок Kubernetes с отслеживаемыми контейнерами/процессами. Для достижения корректных взаимодействий и связывания рассмотрите возможность использования автоматического внедрения только на уровне приложения.
Предустановка
- Ознакомьтесь со списком поддерживаемых приложений и версий.
- Создайте токен доступа с областью действия
PaaS Integration - InstallerDownload. - Требования к хранению:
- ~325 МБ для glibc
- ~290 МБ для musl
- ~650 МБ для glibc и musl вместе взятых
- Для архитектуры ARM убедитесь, что установлены
wgetиunzip.
| Внедрение во время сборки контейнера и cgroup v2
Если используется внедрение сборки контейнера с cgroup v2, |
Развертка
Чтобы интегрировать ЕдиныйАгент в образ приложения, выполните следующие действия.
Kubernetes/OpenShift v4.0
1. Войдите в Docker, используя идентификатор среды Ключ-АСТРОМ в качестве имени пользователя и токен доступа в качестве пароля.
| docker login -u <environmentID> -p <accessToken> <environmentURL> |
2. Добавьте следующие строки кода в образ приложения после последней команды FROM:
| COPY --from=<environment>/linux/oneagent-codemodules:<technology> / /
ENV LD_PRELOAD /opt/astromkey/oneagent/agent/lib64/liboneagentproc.so |
<technology>— Модуль кода ЕдиногоАгента, необходимый для вашего приложения. Доступные варианты:all,java,apache,nginx,nodejs,dotnet,php,goиsdk. Вы можете указать несколько модулей кода, разделив их дефисом (-), напримерjava-go. Включение поддержки отдельных технологий вместо поддержки всех технологических опций приводит к уменьшению размера пакета ЕдиногоАгента.
Ключ-АСТРОМ ЕдиныйАгент поддерживает среды на базе Alpine Linux.
Допустимые варианты: |
3. Создайте образ своего приложения.
Создайте образ Docker из Dockerfile для использования в среде Kubernetes.
| docker build -t yourapp . |
| Вы можете контролировать контейнеры своих приложений с помощью другой среды Ключ-АСТРОМ.
Для этого необходимо выполнить вызов конечной точки REST второй среды Ключ-АСТРОМ. Не забудьте адаптировать соответствующие плейсхолдеры
Убедитесь, что переменные среды контейнера приложения настроены так, как описано ниже:
|
4. необязательно Настройка сетевых зон
Вы можете настроить сетевые зоны как переменную среды:
DT_NETWORK_ZONE: равноyour.network.zone
Более подробную информацию смотрите в разделе Сетевые зоны.
5. необязательно Настройка прокси-адреса
Если вы запускаете среду с прокси-сервером, вам необходимо установить переменную среды DT_PROXY в контейнере приложения, чтобы передать учетные данные прокси-сервера в ЕдиномАгенте.
OpenShift v3.11
1. Определите переменные с необязательными значениями по умолчанию, используя инструкции ARG, как показано ниже.
| ARG DT_API_URL="https://<environmentID>.live.astromkey.com/api"
ARG DT_PAAS_TOKEN="<token>" ARG DT_ONEAGENT_OPTIONS="flavor=default&include=<technology1>&include=<technology2>" ENV DT_HOME="/opt/astromkey/oneagent" |
- Вы можете переопределить значения по умолчанию в OpenShift
BuildConfig. Замените<environmentID>на идентификатор вашей среды Ключ-АСТРОМ. Если вы используете Ключ-АСТРОМ Managed, необходимо указать URL-адрес вашего сервера Ключ-АСТРОМ (https://<YourastromkeyServerURL>/e/<environmentID>/api). Замените<token>на токен PaaS, указанный выше. - Поддержка технологий включается с помощью параметров
include. Допустимые параметрыflavor=default:all,java,apache,nginx,nodejs,dotnet,php,goиsdk. Включение отдельных вариантов поддержки технологий вместо поддержки всех технологических вариантов приводит к уменьшению размера пакета ЕдиногоАгента.
Ключ-АСТРОМ ЕдиныйАгент поддерживает среды на базе Alpine Linux.
Допустимые варианты: |
2. Добавьте следующие команды в текущий Dockerfile для интеграции ЕдиногоАгента и активации инструментария вашего приложения.
| ARG DT_API_URL="https://<environmentID>.live.astromkey.com/api"
ARG DT_API_TOKEN="<token>" ARG DT_ONEAGENT_OPTIONS="flavor=default&include=<technology1>&include=<technology2>" ENV DT_HOME="/opt/astromkey/oneagent" RUN mkdir -p "$DT_HOME" && \ wget -O "$DT_HOME/oneagent.zip" "$DT_API_URL/v1/deployment/installer/agent/unix/paas/latest?Api-Token=$DT_API_TOKEN&$DT_ONEAGENT_OPTIONS" && \ unzip -d "$DT_HOME" "$DT_HOME/oneagent.zip" && \ rm "$DT_HOME/oneagent.zip" ENV LD_PRELOAD="/opt/astromkey/oneagent/agent/lib64/liboneagentproc.so" ARGT_ONEAGENT_OPTIONS="flavor=default&include=<technology1>&include=<technology2>" ENV DT_HOME="/opt/astromkey/oneagent" RUN mkdir -p "$DT_HOME" && \ wget -O "$DT_HOME/oneagent.zip" "$DT_API_URL/v1/deployment/installer/agent/unix/paas/latest?Api-Token=$DT_API_TOKEN&$DT_ONEAGENT_OPTIONS" && \ unzip -d "$DT_HOME" "$DT_HOME/oneagent.zip" && \ rm "$DT_HOME/oneagenzip" ENV LD_PRELOAD="/opt/astromkey/oneagent/agent/lib64/liboneagentproc.so" |
Вышеприведенные команды, которые используют wget и unzip могут не работать, если они не предусмотрены базово.
3. Создайте образ своего приложения.
В контексте OpenShift указанный выше Dockerfile можно использовать для двоичных сборок следующим образом:
| oc new-build --binary --strategy=docker --allow-missing-images yourapp
oc patch bc/yourapp --type=json --patch='[{"op":"remove","path":"/spec/strategy/dockerStrategy/from"}]' oc start-build yourapp --from-dir=. --follow |
| Вы можете контролировать контейнеры своих приложений с помощью другой среды Ключ-АСТРОМ.
Для этого необходимо выполнить вызов конечной точки REST второй среды Ключ-АСТРОМ. Не забудьте адаптировать соответствующие плейсхолдеры
Убедитесь, что переменные среды контейнера приложения настроены так, как описано ниже:
|
4. необязательно Настройка сетевых зон
Вы можете настроить сетевые зоны как переменную среды:
DT_NETWORK_ZONE: равноyour.network.zone
Более подробную информацию смотрите в разделе Сетевые зоны.
5. необязательно Настройка прокси-адреса
Если вы запускаете среду с прокси-сервером, вам необходимо установить переменную среды DT_PROXY в контейнере приложения, чтобы передать учетные данные прокси-сервера в ЕдиномАгенте.
ARM
- Установите следующие переменные времени сборки:
$DT_API_URL(URL-адрес API вашей среды Ключ-АСТРОМ)$DT_PAAS_TOKEN(PaaS-токен для загрузки модулей кода)$DT_ONEAGENT_TECHNOLOGY(Модуль, который загружается, напримерphp)
- Добавьте следующие команды в Dockerfile:
| RUN mkdir -p /opt/astromkey/oneagent && ARCHIVE=$(mktemp) && wget -O $ARCHIVE "$DT_API_URL/v1/deployment/installer/agent/unix/paas/latest?Api-Token=$DT_PAAS_TOKEN&flavor=default&arch=arm&include=$DT_ONEAGENT_TECHNOLOGY" && unzip -o -d /opt/astromkey/oneagent $ARCHIVE && rm -f $ARCHIVE
ENV LD_PRELOAD /opt/astromkey/oneagent/agent/lib64/liboneagentproc.so |
Обновление
Вам необходимо вручную обновлять ЕдиныйАгент, перестраивая образ контейнера каждый раз, когда требуется новая версия модуля кода.
Удаление
Чтобы удалить ЕдиныйАгент из мониторинга приложений
Многоэтапные сборки образов Docker
1. Удалите две строки кода из образа приложения.
| COPY --from=<ACTIVEGATE-ADDRESS>/linux/oneagent-codemodules:<TECHNOLOGY> / /
ENV LD_PRELOAD /opt/astromkey/oneagent/agent/lib64/liboneagentproc.so |
2. Перестройте образ приложения.
| docker build -t yourapp . |
Классическая интеграция
1. Удалите следующие команды из вашего Dockerfile.
| ARG DT_API_URL="https://<environmentID>.live.astromkey.com/api"
ARG DT_API_TOKEN="<token>" ARG DT_ONEAGENT_OPTIONS="flavor=default&include=<technology1>&include=<technology2>" ENV DT_HOME="/opt/astromkey/oneagent" RUN mkdir -p "$DT_HOME" && \ wget -O "$DT_HOME/oneagent.zip" "$DT_API_URL/v1/deployment/installer/agent/unix/paas/latest?Api-Token=$DT_API_TOKEN&$DT_ONEAGENT_OPTIONS" && \ unzip -d "$DT_HOME" "$DT_HOME/oneagent.zip" && \ rm "$DT_HOME/oneagent.zip" ENTRYPOINT [ "/opt/astromkey/oneagent/astromkey-agent64.sh" ] CMD [ "executable", "param1", "param2" ] # the command of your application, for example, Java |
2. Перестройте образ приложения.
| docker build -t yourapp . |