Настройте ЕдиныйАгент Ключ-АСТРОМ как контейнер Docker

Материал из Документация Ключ-АСТРОМ

В этом разделе объясняется, как запустить ЕдиныйАгент в качестве контейнера Docker для внедрения полного стека. Следуйте этому подходу, если вы используете среду выполнения Docker без платформы оркестрации.

Поддерживаемые версии

Развертывание ЕдиногоАгента через контейнер Docker поддерживается для Docker Engine версий 1.10–1.13.1, 17.03+ CE и EE и доступно только для хостов на базе Linux. Установка внутри контейнера не поддерживается. Дополнительные сведения см. в разделе ограничения этой модели развертывания.

Requirements

  • Создайте токен PaaS.
  • Ваша среда Docker должна позволять вашему контейнеру ЕдиногоАгента работать в привилегированном режиме.
  • Каталог/opt должен существовать на хосте, на котором вы развертываете контейнер ЕдиногоАгента.

Примечание:

Начиная с версии образа 1.11.1000 Docker образ ЕдиногоАгента больше не поставляется с содержащимся в нем установщиком ЕдиногоАгента. Вместо этого установщик загружается из вашей среды во время процесса запуска образа. Образ совместим с новыми версиями ЕдиногоАгента и не имеет конкретной связи между версией ЕдиногоАгента и версией образа. Единственная существующая зависимость — это требование минимальной поддерживаемой версии ЕдиногоАгента для данной версии образа. Подробности смотрите в таблице ниже:

Версия образа Минимальная требуемая версия ЕдиногоАгента
1.11.1000 - 1.12.1000 1.119
1.13.1000 - 1.21.1000 1.139
>= 1.22.1000 1.157

Найдите URL-адрес установщика ЕдиногоАгента.

Первый шаг — получить местоположение для ONEAGENT_INSTALLER_SCRIPT_URL. Эта информация предоставляется вам во время установки ЕдиногоАгента.

Чтобы получить ONEAGENT_INSTALLER_SCRIPT_URL

  1. В меню Ключ-АСТРОМ выберите «Развернуть Ключ-АСТРОМ», выберите «Начать установку», а затем «Linux».
  2. Определите URL-адрес сценария установщика и токен с помощью команды wget, предоставляемой пользовательским интерфейсом:

This is the URL:

This is the token:

Замените значение параметра arch на <arch>. Игнорируйте параметр flavor=default.

Ваш URL-адрес должен выглядеть следующим образом: https://host.domain.com/api/v1/deployment/installer/agent/unix/default/latest?arch=<arch>

Это ваш ONEAGENT_INSTALLER_SCRIPT_URL.

Запустите ЕдиныйАгент как контейнер Docker

Чтобы запустить ЕдиныйАгент как контейнер Docker, у вас есть два варианта..

Выполните следующую команду docker run убедившись, что вы передаете URL-адрес и токен, которые вы определили ранее, в качестве значений переменных среды ONEAGENT_INSTALLER_SCRIPT_URL и ONEAGENT_INSTALLER_DOWNLOAD_TOKEN.

docker run -d
--restart=on-failure:5
--pid=host
--net=host
--cap-drop ALL
--cap-add CHOWN
--cap-add DAC_OVERRIDE
--cap-add DAC_READ_SEARCH
--cap-add FOWNER
--cap-add FSETID
--cap-add KILL
--cap-add NET_ADMIN
--cap-add NET_RAW
--cap-add SETFCAP
--cap-add SETGID
--cap-add SETUID
--cap-add SYS_ADMIN
--cap-add SYS_CHROOT
--cap-add SYS_PTRACE
--cap-add SYS_RESOURCE
--security-opt apparmor:unconfined
-v /:/mnt/root
-e ONEAGENT_INSTALLER_SCRIPT_URL=<REPLACE_WITH_YOUR_URL>
-e ONEAGENT_INSTALLER_DOWNLOAD_TOKEN=<Api-Token>
astromkey/oneagent <INSTALLER_PARAMETERS>

Развертывание ЕдиногоАгента с помощью инструмента оркестрации контейнеров

Если вы используете инструмент оркестрации контейнеров, ваш оркестратор может развернуть для вас контейнер ЕдиногоАгента. Приведенные ниже фрагменты примеров показывают, как воспользоваться преимуществами инструментов оркестровки при развертывании ЕдиногоАгента на всех ваших узлах.

  • Запустите ЕдиныйАгент с Mesos/Marathon
  • Запустите ЕдиныйАгент с Kubernetes
  • Запустите ЕдиныйАгент с Container Service
  • Настройте Ключ-АСТРОМ в Cloud Foundry

Пользовательская установка с параметрами командной строки.

В качестве альтернативы вы можете выполнить выборочную установку с параметрами командной строки.

Привилегии

Дополнительные сведения о привилегиях, необходимых для ЕдиногоАгента, развернутого как контейнер Docker, см. в разделе привилегии ЕдиногоАгента для мониторинга контейнера.

Ограничения

  • ЕдиныйАгент имеет доступ только к дискам, смонтированным внутри контейнера, в котором он работает. Поэтому ЕдиныйАгент может сообщать метрики только для этих дисков контейнера, а не для дисков базовых хостов. Это вызвано контекстом, в котором ЕдиныйАгент выполняет свои команды для сбора данных.
  • Глубокий мониторинг нативных (т. е. неконтейнерных) процессов на хостах отключен. Файл внедрения ld.so.preload в файловой системе хоста не изменяется, поэтому автоматическое внедрение в процессы, запущенные вне контейнеров, невозможно.
  • Из-за этого расширение JMX может работать только с процессами, запущенными внутри контейнеров. Расширение JMX тесно связано с глубоким мониторингом процессов Java.
  • Запись сбоев приложений и дампов ядра с помощью oneagentdumpproc не поддерживается.
  • ЕдиныйАгент не зарегистрирован в автозагрузке системы. Время жизни и запуск контейнера с процессами ЕдиногоАгента управляются Docker.
  • Поддерживаются все параметры командной строки программы установки, за исключением INSTALL_PATH, LOG_PATH, иDATA_STORAGE.
  • Существует зависимость запуска между контейнером, в котором развернут ЕдиныйАгент, и контейнерами приложений, которые должны быть инструментированы (т. е. в которых включен глубокий мониторинг процессов). Контейнер ЕдиногоАгента должен быть запущен, а процесс oneagenthelper должен быть запущен до запуска контейнера приложения, чтобы приложение могло быть правильно инструментировано.

Обновление ЕдиногоАгента для контейнеров Docker

Чтобы обновить ЕдиныйАгент в контейнерах Docker

Следуйте инструкциям, соответствующим тому, как вы установили ЕдиныйАгент.

  • Если вы установили его в Linux, следуйте инструкциям по обновлению ЕдиногоАгента в Linux.
  • Если вы установили его в Windows, следуйте инструкциям по обновлению ЕдиногоАгента в Windows.
  • Если вы развернули ЕдиныйАгент как контейнер Docker, перезапустите контейнер с помощью следующей команды. $ docker restart oneagent при условии, что вы добавили параметр --name=oneagent в соответствующую команду запуска Docker. Docker Образ ЕдиногоАгента автоматически получит последнюю версию ЕдиногоАгента. Если вы указали версию установки ЕдиногоАгента по умолчанию для новых хостов и приложений в настройках обновлений ЕдиногоАгента, образ ЕдиногоАгента Docker автоматически получит указанную версию ЕдиногоАгента по умолчанию.

Примечание. Автоматическое обновление ЕдиногоАгента не поддерживается, если ЕдиныйАгент развернут как образ Docker.