<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_%D0%95%D0%B4%D0%B8%D0%BD%D1%8B%D0%B9%D0%90%D0%B3%D0%B5%D0%BD%D1%82_%D0%BA%D0%B0%D0%BA_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80_Docker</id>
	<title>Настройка Ключ-АСТРОМ ЕдиныйАгент как контейнер Docker - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_%D0%95%D0%B4%D0%B8%D0%BD%D1%8B%D0%B9%D0%90%D0%B3%D0%B5%D0%BD%D1%82_%D0%BA%D0%B0%D0%BA_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80_Docker"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_%D0%95%D0%B4%D0%B8%D0%BD%D1%8B%D0%B9%D0%90%D0%B3%D0%B5%D0%BD%D1%82_%D0%BA%D0%B0%D0%BA_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80_Docker&amp;action=history"/>
	<updated>2026-04-13T15:59:21Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_%D0%95%D0%B4%D0%B8%D0%BD%D1%8B%D0%B9%D0%90%D0%B3%D0%B5%D0%BD%D1%82_%D0%BA%D0%B0%D0%BA_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80_Docker&amp;diff=6022&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «В этой теме объясняется, как запустить ЕдиныйАгент в виде контейнера '''Docker''' для внедрен...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%9A%D0%BB%D1%8E%D1%87-%D0%90%D0%A1%D0%A2%D0%A0%D0%9E%D0%9C_%D0%95%D0%B4%D0%B8%D0%BD%D1%8B%D0%B9%D0%90%D0%B3%D0%B5%D0%BD%D1%82_%D0%BA%D0%B0%D0%BA_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80_Docker&amp;diff=6022&amp;oldid=prev"/>
		<updated>2025-12-10T22:54:15Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В этой теме объясняется, как запустить ЕдиныйАгент в виде контейнера &amp;#039;&amp;#039;&amp;#039;Docker&amp;#039;&amp;#039;&amp;#039; для внедрен...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В этой теме объясняется, как запустить ЕдиныйАгент в виде контейнера '''Docker''' для внедрения полного стека. Следуйте этому подходу, если вы используете среду выполнения '''Docker''' без платформы оркестрации.&lt;br /&gt;
&lt;br /&gt;
== Поддерживаемые версии ==&lt;br /&gt;
Развертывание ЕдиногоАгента через контейнер '''Docker''' поддерживается для версий '''Docker Engine 1.10–1.13.1, 17.03+ CE''' и '''EE''' и доступно только для хостов на базе '''Linux'''. Установка внутри контейнера не поддерживается. Для получения дополнительной информации см. '''ограничения''' данной модели развертывания (ниже).&lt;br /&gt;
&lt;br /&gt;
== Требования ==&lt;br /&gt;
&lt;br /&gt;
* Создайте токен '''PaaS'''.&lt;br /&gt;
* Ваша среда '''Docker''' должна позволять контейнеру ЕдиныйАгент работать в привилегированном режиме.&lt;br /&gt;
* Директория &amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt; должна существовать на хосте, где вы развертываете контейнер ЕдиныйАгент.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Начиная с версии образа 1.11.1000, образ Docker ЕдиныйАгент больше не поставляется с встроенным установщиком ЕдиногоАгента. Вместо этого установщик загружается из вашей среды во время процесса запуска образа. Образ обратно совместим с новыми версиями ЕдиногоАгента, и нет никакой конкретной связи между версией ЕдиногоАгента и версией образа. Единственная существующая зависимость — это требование минимальной поддерживаемой версии ЕдиногоАгента для данной версии образа. Подробности см. в таблице ниже:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Версия образа&lt;br /&gt;
!Минимально необходимая версия ЕдиногоАгента&lt;br /&gt;
|-&lt;br /&gt;
|1.11.1000 - 1.12.1000&lt;br /&gt;
|1.119&lt;br /&gt;
|-&lt;br /&gt;
|1.13.1000 - 1.21.1000&lt;br /&gt;
|1.139&lt;br /&gt;
|-&lt;br /&gt;
|&amp;gt;= 1.22.1000&lt;br /&gt;
|1.157&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Найдите URL-адрес установщика ЕдиногоАгента ==&lt;br /&gt;
Первый шаг — получить информацию о местоположении файла &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt;. Эта информация будет предоставлена ​​вам во время установки ЕдиногоАгента.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить свой &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# В разделе '''Расширения''' выберите ЕдиныйАгент.&lt;br /&gt;
# Выберите '''Настройка''' &amp;gt; '''Linux'''.&lt;br /&gt;
# Определите URL-адрес и токен скрипта установки с помощью команды, предоставленной пользовательским интерфейсом &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Версия образа контейнера ЕдиныйАгент: 1.39.1000+&lt;br /&gt;
!Образ контейнера ЕдиныйАгент версии 1.38.1000 и более ранних&lt;br /&gt;
|-&lt;br /&gt;
|Замените значение параметра &amp;lt;code&amp;gt;arch&amp;lt;/code&amp;gt; на &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt;. Игнорируйте параметр &amp;lt;code&amp;gt;flavor=default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ваш URL-адрес должен выглядеть примерно так: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://host.domain.com/api/v1/deployment/installer/agent/unix/default/latest?arch=&amp;lt;/nowiki&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это ваш &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Добавьте токен API к URL-адресу, используя параметр &amp;lt;code&amp;gt;API-Token&amp;lt;/code&amp;gt;. Ваш URL-адрес должен выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://host.domain.com/api/v1/deployment/installer/agent/unix/default/latest?arch=x86&amp;amp;flavor=default&amp;amp;Api-Token=&amp;lt;/nowiki&amp;gt;&amp;lt;token&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это ваш &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Запустите ЕдиныйАгент в виде контейнера Docker ==&lt;br /&gt;
Для запуска ЕдиногоАгента в качестве контейнера Docker у вас есть два варианта.&lt;br /&gt;
&lt;br /&gt;
=== Без AppArmor ===&lt;br /&gt;
Выполните следующую команду &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt; на всех ваших Docker-хостах, убедившись, что вы передаете URL-адрес и токен, определенные ранее, в качестве значений переменных &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt; окружения &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_DOWNLOAD_TOKEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Версия образа контейнера ЕдиныйАгент: 1.39.1000+&lt;br /&gt;
!Образ контейнера ЕдиныйАгент версии 1.38.1000 и более ранних&lt;br /&gt;
|-&lt;br /&gt;
|docker run -d&lt;br /&gt;
&lt;br /&gt;
--restart=on-failure:5&lt;br /&gt;
&lt;br /&gt;
--read-only=true&lt;br /&gt;
&lt;br /&gt;
--pid=host&lt;br /&gt;
&lt;br /&gt;
--net=host&lt;br /&gt;
&lt;br /&gt;
--cap-drop ALL&lt;br /&gt;
&lt;br /&gt;
--cap-add CHOWN&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_READ_SEARCH&lt;br /&gt;
&lt;br /&gt;
--cap-add FOWNER&lt;br /&gt;
&lt;br /&gt;
--cap-add FSETID&lt;br /&gt;
&lt;br /&gt;
--cap-add KILL&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_RAW&lt;br /&gt;
&lt;br /&gt;
--cap-add SETFCAP&lt;br /&gt;
&lt;br /&gt;
--cap-add SETGID&lt;br /&gt;
&lt;br /&gt;
--cap-add SETUID&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_CHROOT&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_PTRACE&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_RESOURCE&lt;br /&gt;
&lt;br /&gt;
--security-opt apparmor:unconfined&lt;br /&gt;
&lt;br /&gt;
-v /:/mnt/root&lt;br /&gt;
&lt;br /&gt;
-v &amp;lt;volume name&amp;gt;:/mnt/volume_storage_mount&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_ENABLE_VOLUME_STORAGE=true&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_SCRIPT_URL=&amp;lt;REPLACE_WITH_YOUR_URL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_DOWNLOAD_TOKEN=&amp;lt;Api-Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
astromkey/oneagent &amp;lt;INSTALLER_PARAMETERS&amp;gt;&lt;br /&gt;
|docker run -d&lt;br /&gt;
&lt;br /&gt;
--restart=on-failure:5&lt;br /&gt;
&lt;br /&gt;
--pid=host&lt;br /&gt;
&lt;br /&gt;
--net=host&lt;br /&gt;
&lt;br /&gt;
--cap-drop ALL&lt;br /&gt;
&lt;br /&gt;
--cap-add CHOWN&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_READ_SEARCH&lt;br /&gt;
&lt;br /&gt;
--cap-add FOWNER&lt;br /&gt;
&lt;br /&gt;
--cap-add FSETID&lt;br /&gt;
&lt;br /&gt;
--cap-add KILL&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_RAW&lt;br /&gt;
&lt;br /&gt;
--cap-add SETFCAP&lt;br /&gt;
&lt;br /&gt;
--cap-add SETGID&lt;br /&gt;
&lt;br /&gt;
--cap-add SETUID&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_CHROOT&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_PTRACE&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_RESOURCE&lt;br /&gt;
&lt;br /&gt;
--security-opt apparmor:unconfined&lt;br /&gt;
&lt;br /&gt;
-v /:/mnt/root&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_SCRIPT_URL=&amp;lt;REPLACE_WITH_YOUR_URL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_DOWNLOAD_TOKEN=&amp;lt;Api-Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
astromkey/oneagent &amp;lt;INSTALLER_PARAMETERS&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== С AppArmor ===&lt;br /&gt;
1. Перейдите в указанную директорию &amp;lt;code&amp;gt;/etc/apparmor.d&amp;lt;/code&amp;gt; и создайте файл &amp;lt;code&amp;gt;oneagent&amp;lt;/code&amp;gt; со следующим содержимым:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Образ контейнера ЕдиныйАгент версии 1.88.1000 (1.289) и выше&lt;br /&gt;
!Версия образа контейнера ЕдиныйАгент ниже 1.88.1000 (1.289)&lt;br /&gt;
|-&lt;br /&gt;
|#include &amp;lt;tunables/global&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@{INITIAL_HOST_ROOT}=/mnt/root&lt;br /&gt;
&lt;br /&gt;
@{VOLUME_MOUNT}=/mnt/volume_storage_mount&lt;br /&gt;
&lt;br /&gt;
@{DOCKER_VOLUME_PATH}=/mnt/root/var/lib/docker/volumes/astromkey_oneagent_storage/_data&lt;br /&gt;
&lt;br /&gt;
@{HOST_ROOT}={/mnt/host_root,@{VOLUME_MOUNT}/host_root,@{DOCKER_VOLUME_PATH}/host_root}&lt;br /&gt;
&lt;br /&gt;
@{INSTALL_PATH}=/opt/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{CONFIG_PATH}=/var/lib/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{LOG_PATH}=/var/log/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{ENRICHMENT_PATH}=/var/lib/astromkey/enrichment&lt;br /&gt;
&lt;br /&gt;
@{CONTAINER_INIT_LOG_DIR}=/tmp/container_init&lt;br /&gt;
&lt;br /&gt;
profile oneagent flags=(attach_disconnected,mediate_deleted) {&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;abstractions/base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;abstractions/dbus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  network,&lt;br /&gt;
&lt;br /&gt;
  file,&lt;br /&gt;
&lt;br /&gt;
  capability chown,&lt;br /&gt;
&lt;br /&gt;
  capability dac_override,&lt;br /&gt;
&lt;br /&gt;
  capability dac_read_search,&lt;br /&gt;
&lt;br /&gt;
  capability fowner,&lt;br /&gt;
&lt;br /&gt;
  capability fsetid,&lt;br /&gt;
&lt;br /&gt;
  capability kill,&lt;br /&gt;
&lt;br /&gt;
  capability net_admin,&lt;br /&gt;
&lt;br /&gt;
  capability net_raw,&lt;br /&gt;
&lt;br /&gt;
  capability setfcap,&lt;br /&gt;
&lt;br /&gt;
  capability setgid,&lt;br /&gt;
&lt;br /&gt;
  capability setuid,&lt;br /&gt;
&lt;br /&gt;
  capability sys_admin,&lt;br /&gt;
&lt;br /&gt;
  capability sys_chroot,&lt;br /&gt;
&lt;br /&gt;
  capability sys_ptrace,&lt;br /&gt;
&lt;br /&gt;
  capability sys_resource,&lt;br /&gt;
&lt;br /&gt;
  # Allow mounting volume paths to host root&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{DOCKER_VOLUME_PATH}/ -&amp;gt; @{VOLUME_MOUNT}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{VOLUME_MOUNT}/opt/ -&amp;gt; @{HOST_ROOT}@{INSTALL_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{INSTALL_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{VOLUME_MOUNT}/var/ -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{VOLUME_MOUNT}/var_log/ -&amp;gt; @{HOST_ROOT}@{LOG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{LOG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{VOLUME_MOUNT}/var_enrichment/ -&amp;gt; @{HOST_ROOT}@{ENRICHMENT_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{ENRICHMENT_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) {@{VOLUME_MOUNT}/var_lib_helper/,/var_lib_helper/} -&amp;gt; @{HOST_ROOT}/var/lib/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) {@{VOLUME_MOUNT}/var_log_helper/,/var_log_helper/} -&amp;gt; @{HOST_ROOT}/var/log/,&lt;br /&gt;
&lt;br /&gt;
  # Allow remounting host root to the new location&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/* -&amp;gt; @{HOST_ROOT}/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/opt/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/opt/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/opt/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/var/lib/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/var/lib/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/var/lib/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/var/log/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/var/log/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/var/log/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/sys/fs/cgroup/ -&amp;gt; @{HOST_ROOT}/sys/fs/cgroup/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) /sys/fs/cgroup -&amp;gt; @{HOST_ROOT}/sys/fs/cgroup/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(proc) proc -&amp;gt; @{HOST_ROOT}/proc/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(sysfs) sys -&amp;gt; @{HOST_ROOT}/sys/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(securityfs) securityfs -&amp;gt; @{HOST_ROOT}/sys/kernel/security/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(selinuxfs) selinuxfs -&amp;gt; @{HOST_ROOT}/sys/fs/selinux/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(debugfs) debugfs -&amp;gt; @{HOST_ROOT}/sys/kernel/debug/,&lt;br /&gt;
&lt;br /&gt;
  umount @{INITIAL_HOST_ROOT}/,&lt;br /&gt;
&lt;br /&gt;
  # Allow mounting/unmounting tmpfs for initial logs&lt;br /&gt;
&lt;br /&gt;
  mount fstype=(tmpfs) tmpfs -&amp;gt; @{CONTAINER_INIT_LOG_DIR}/,&lt;br /&gt;
&lt;br /&gt;
  umount @{CONTAINER_INIT_LOG_DIR}/,&lt;br /&gt;
&lt;br /&gt;
  # Allow unmounting problematic mounts&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/docker/aufs/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/docker/devicemapper/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/plugins/kubernetes.io/csi/pv/pvc-*/globalmount/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/pods/*/volumes/kubernetes.io~{downward-api,empty-dir,csi,secret}/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/pods/*/volume-subpaths/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/run/netns/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/run/containerd/io.containerd.grpc.v1.cri/sandboxes/**,&lt;br /&gt;
&lt;br /&gt;
  # Allow moving log agent service account mount point&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, move) {/run,/var/run}/secrets/kubernetes.io/serviceaccount/ -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/agent/secrets/kubernetes.io/serviceaccount/,&lt;br /&gt;
&lt;br /&gt;
  # Allow moving log agent service account mount point&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, move) {/run,/var/run}/secrets/kubernetes.io/serviceaccount/ -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/agent/secrets/kubernetes.io/serviceaccount/,&lt;br /&gt;
&lt;br /&gt;
  # Host (privileged) processes may send signals to container processes.&lt;br /&gt;
&lt;br /&gt;
  signal (receive) peer=unconfined,&lt;br /&gt;
&lt;br /&gt;
  # Container processes may send signals to injection process.&lt;br /&gt;
&lt;br /&gt;
  signal (send) peer=@{profile_name}//injection,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/* w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1-9][^0-9][^0-9][^0-9/]*}/** w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sys/[^k]** w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sysrq-trigger rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/kcore rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/[^f]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/f[^s]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/[^c]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/c[^g]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/cg[^r]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/firmware/** rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/kernel/security/** rwklx,&lt;br /&gt;
&lt;br /&gt;
  ptrace,&lt;br /&gt;
&lt;br /&gt;
  @{HOST_ROOT}@{INSTALL_PATH}/agent/lib64/oneagenthelper Cx -&amp;gt; injection,&lt;br /&gt;
&lt;br /&gt;
  profile injection flags=(attach_disconnected,mediate_deleted,chroot_relative) {&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;abstractions/base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;abstractions/dbus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    network,&lt;br /&gt;
&lt;br /&gt;
    file,&lt;br /&gt;
&lt;br /&gt;
    capability dac_override,&lt;br /&gt;
&lt;br /&gt;
    capability fowner,&lt;br /&gt;
&lt;br /&gt;
    capability fsetid,&lt;br /&gt;
&lt;br /&gt;
    capability sys_admin,&lt;br /&gt;
&lt;br /&gt;
    capability sys_chroot,&lt;br /&gt;
&lt;br /&gt;
    capability sys_ptrace,&lt;br /&gt;
&lt;br /&gt;
    # Allow mounting paths needed for container injection&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{INSTALL_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/datastorage/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/config/container.conf* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/runtime/.container.conf* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/config/ld.so.preload* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/runtime/.ld.so.preload* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{LOG_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{ENRICHMENT_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(slave) -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(ro, remount, bind) -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    # injection process may receive signals from parent process.&lt;br /&gt;
&lt;br /&gt;
    signal (receive) peer=oneagent,&lt;br /&gt;
&lt;br /&gt;
    ptrace,&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|#include &amp;lt;tunables/global&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@{INITIAL_HOST_ROOT}=/mnt/root&lt;br /&gt;
&lt;br /&gt;
@{HOST_ROOT}=/mnt/host_root&lt;br /&gt;
&lt;br /&gt;
@{DOCKER_VOLUME_PATH}=/mnt/root/var/lib/docker/volumes/astromkey_oneagent_storage/_data&lt;br /&gt;
&lt;br /&gt;
@{VOLUME_MOUNT}=/mnt/volume_storage_mount&lt;br /&gt;
&lt;br /&gt;
@{INSTALL_PATH}=/opt/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{CONFIG_PATH}=/var/lib/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{LOG_PATH}=/var/log/astromkey/oneagent&lt;br /&gt;
&lt;br /&gt;
@{ENRICHMENT_PATH}=/var/lib/astromkey/enrichment&lt;br /&gt;
&lt;br /&gt;
profile oneagent flags=(attach_disconnected,mediate_deleted) {&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;abstractions/base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;abstractions/dbus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  network,&lt;br /&gt;
&lt;br /&gt;
  file,&lt;br /&gt;
&lt;br /&gt;
  capability chown,&lt;br /&gt;
&lt;br /&gt;
  capability dac_override,&lt;br /&gt;
&lt;br /&gt;
  capability dac_read_search,&lt;br /&gt;
&lt;br /&gt;
  capability fowner,&lt;br /&gt;
&lt;br /&gt;
  capability fsetid,&lt;br /&gt;
&lt;br /&gt;
  capability kill,&lt;br /&gt;
&lt;br /&gt;
  capability net_admin,&lt;br /&gt;
&lt;br /&gt;
  capability net_raw,&lt;br /&gt;
&lt;br /&gt;
  capability setfcap,&lt;br /&gt;
&lt;br /&gt;
  capability setgid,&lt;br /&gt;
&lt;br /&gt;
  capability setuid,&lt;br /&gt;
&lt;br /&gt;
  capability sys_admin,&lt;br /&gt;
&lt;br /&gt;
  capability sys_chroot,&lt;br /&gt;
&lt;br /&gt;
  capability sys_ptrace,&lt;br /&gt;
&lt;br /&gt;
  capability sys_resource,&lt;br /&gt;
&lt;br /&gt;
  # Allow mounting volume paths to host root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;  mount options=(rw, rbind) {@{VOLUME_MOUNT},@{DOCKER_VOLUME_PATH}}/opt/ -&amp;gt; @{HOST_ROOT}@{INSTALL_PATH}/,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{INSTALL_PATH}/,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;  mount options=(rw, rbind) {@{VOLUME_MOUNT},@{DOCKER_VOLUME_PATH}}/var/ -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{CONFIG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;  mount options=(rw, rbind) {@{VOLUME_MOUNT},@{DOCKER_VOLUME_PATH}}/var_log/ -&amp;gt; @{HOST_ROOT}@{LOG_PATH}/,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{LOG_PATH}/,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;  mount options=(rw, rbind) {@{VOLUME_MOUNT},@{DOCKER_VOLUME_PATH}}/var_enrichment/ -&amp;gt; @{HOST_ROOT}@{ENRICHMENT_PATH}/,&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}@{ENRICHMENT_PATH}/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) /var_lib_helper/ -&amp;gt; @{HOST_ROOT}/var/lib/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) /var_log_helper/ -&amp;gt; @{HOST_ROOT}/var/log/,&lt;br /&gt;
&lt;br /&gt;
  # Allow remounting host root to the new location&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/* -&amp;gt; @{HOST_ROOT}/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/opt/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/opt/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/opt/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/var/lib/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/var/lib/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/var/lib/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/**/ -&amp;gt; @{HOST_ROOT}/var/log/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, bind) @{INITIAL_HOST_ROOT}/**/* -&amp;gt; @{HOST_ROOT}/var/log/*,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rslave) -&amp;gt; @{HOST_ROOT}/var/log/*/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) @{INITIAL_HOST_ROOT}/sys/fs/cgroup/ -&amp;gt; @{HOST_ROOT}/sys/fs/cgroup/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw, rbind) /sys/fs/cgroup -&amp;gt; @{HOST_ROOT}/sys/fs/cgroup/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(proc) proc -&amp;gt; @{HOST_ROOT}/proc/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(sysfs) sys -&amp;gt; @{HOST_ROOT}/sys/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(securityfs) securityfs -&amp;gt; @{HOST_ROOT}/sys/kernel/security/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(selinuxfs) selinuxfs -&amp;gt; @{HOST_ROOT}/sys/fs/selinux/,&lt;br /&gt;
&lt;br /&gt;
  mount options=(rw) fstype=(debugfs) debugfs -&amp;gt; @{HOST_ROOT}/sys/kernel/debug/,&lt;br /&gt;
&lt;br /&gt;
  umount @{INITIAL_HOST_ROOT}/,&lt;br /&gt;
&lt;br /&gt;
  # Allow unmounting problematic mounts&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/docker/aufs/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/docker/devicemapper/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/plugins/kubernetes.io/csi/pv/pvc-*/globalmount/,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/pods/*/volumes/kubernetes.io~{downward-api,empty-dir,csi,secret}/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/var/lib/kubelet/pods/*/volume-subpaths/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/run/netns/**,&lt;br /&gt;
&lt;br /&gt;
  umount @{HOST_ROOT}/run/containerd/io.containerd.grpc.v1.cri/sandboxes/**,&lt;br /&gt;
&lt;br /&gt;
  # Host (privileged) processes may send signals to container processes.&lt;br /&gt;
&lt;br /&gt;
  signal (receive) peer=unconfined,&lt;br /&gt;
&lt;br /&gt;
  # Container processes may send signals amongst themselves.&lt;br /&gt;
&lt;br /&gt;
  signal (send,receive) peer=@{profile_name},&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/* w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1-9][^0-9][^0-9][^0-9/]*}/** w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sys/[^k]** w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/sysrq-trigger rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny @{PROC}/kcore rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/[^f]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/f[^s]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/[^c]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/c[^g]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/fs/cg[^r]*/** wklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/firmware/** rwklx,&lt;br /&gt;
&lt;br /&gt;
  deny /sys/kernel/security/** rwklx,&lt;br /&gt;
&lt;br /&gt;
  ptrace,&lt;br /&gt;
&lt;br /&gt;
  @{HOST_ROOT}@{INSTALL_PATH}/agent/lib64/oneagenthelper Cx,&lt;br /&gt;
&lt;br /&gt;
  profile @{HOST_ROOT}@{INSTALL_PATH}/agent/lib64/oneagenthelper flags=(attach_disconnected,mediate_deleted,chroot_relative) {&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;abstractions/base&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;abstractions/dbus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    network,&lt;br /&gt;
&lt;br /&gt;
    file,&lt;br /&gt;
&lt;br /&gt;
    capability dac_override,&lt;br /&gt;
&lt;br /&gt;
    capability fowner,&lt;br /&gt;
&lt;br /&gt;
    capability fsetid,&lt;br /&gt;
&lt;br /&gt;
    capability sys_admin,&lt;br /&gt;
&lt;br /&gt;
    capability sys_chroot,&lt;br /&gt;
&lt;br /&gt;
    capability sys_ptrace,&lt;br /&gt;
&lt;br /&gt;
    # Allow mounting paths needed for container injection&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{INSTALL_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/datastorage/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/config/container.conf* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/runtime/.container.conf* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/config/ld.so.preload* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{CONFIG_PATH}/agent/runtime/.ld.so.preload* -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{LOG_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(rw, rbind) @{ENRICHMENT_PATH}/ -&amp;gt; /**/,&lt;br /&gt;
&lt;br /&gt;
    mount options=(slave) -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    mount options=(ro, remount, bind) -&amp;gt; /**,&lt;br /&gt;
&lt;br /&gt;
    ptrace,&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
|}&lt;br /&gt;
2. Выполните следующую команду, чтобы загрузить профиль AppArmor:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|apparmor_parser -r /etc/apparmor.d/oneagent&lt;br /&gt;
|}&lt;br /&gt;
3. Выполните следующую команду &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt; на всех ваших '''Docker'''-хостах, убедившись, что вы передаете URL-адрес и токен, определенные ранее, в качестве значений переменных &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_SCRIPT_URL&amp;lt;/code&amp;gt; окружения &amp;lt;code&amp;gt;ONEAGENT_INSTALLER_DOWNLOAD_TOKEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Образ контейнера ЕдиныйАгент версии 1.88.1000 (1.289) и выше&lt;br /&gt;
!Версия образа контейнера ЕдиныйАгент ниже 1.88.1000 (1.289)&lt;br /&gt;
|-&lt;br /&gt;
|docker run -d&lt;br /&gt;
&lt;br /&gt;
--restart=on-failure:5&lt;br /&gt;
&lt;br /&gt;
--read-only=true&lt;br /&gt;
&lt;br /&gt;
--pid=host&lt;br /&gt;
&lt;br /&gt;
--net=host&lt;br /&gt;
&lt;br /&gt;
--cap-drop ALL&lt;br /&gt;
&lt;br /&gt;
--cap-add CHOWN&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_READ_SEARCH&lt;br /&gt;
&lt;br /&gt;
--cap-add FOWNER&lt;br /&gt;
&lt;br /&gt;
--cap-add FSETID&lt;br /&gt;
&lt;br /&gt;
--cap-add KILL&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_RAW&lt;br /&gt;
&lt;br /&gt;
--cap-add SETFCAP&lt;br /&gt;
&lt;br /&gt;
--cap-add SETGID&lt;br /&gt;
&lt;br /&gt;
--cap-add SETUID&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_CHROOT&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_PTRACE&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_RESOURCE&lt;br /&gt;
&lt;br /&gt;
--security-opt apparmor:oneagent&lt;br /&gt;
&lt;br /&gt;
-v /:/mnt/root&lt;br /&gt;
&lt;br /&gt;
-v &amp;lt;volume name&amp;gt;:/mnt/volume_storage_mount&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_ENABLE_VOLUME_STORAGE=true&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_SCRIPT_URL=&amp;lt;REPLACE_WITH_YOUR_URL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_DOWNLOAD_TOKEN=&amp;lt;Api-Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
astromkey/oneagent &amp;lt;INSTALLER_PARAMETERS&amp;gt;&lt;br /&gt;
|docker run -d&lt;br /&gt;
&lt;br /&gt;
--restart=on-failure:5&lt;br /&gt;
&lt;br /&gt;
--pid=host&lt;br /&gt;
&lt;br /&gt;
--net=host&lt;br /&gt;
&lt;br /&gt;
--cap-drop ALL&lt;br /&gt;
&lt;br /&gt;
--cap-add CHOWN&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_OVERRIDE&lt;br /&gt;
&lt;br /&gt;
--cap-add DAC_READ_SEARCH&lt;br /&gt;
&lt;br /&gt;
--cap-add FOWNER&lt;br /&gt;
&lt;br /&gt;
--cap-add FSETID&lt;br /&gt;
&lt;br /&gt;
--cap-add KILL&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add NET_RAW&lt;br /&gt;
&lt;br /&gt;
--cap-add SETFCAP&lt;br /&gt;
&lt;br /&gt;
--cap-add SETGID&lt;br /&gt;
&lt;br /&gt;
--cap-add SETUID&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_ADMIN&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_CHROOT&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_PTRACE&lt;br /&gt;
&lt;br /&gt;
--cap-add SYS_RESOURCE&lt;br /&gt;
&lt;br /&gt;
--security-opt apparmor:oneagent&lt;br /&gt;
&lt;br /&gt;
-v /:/mnt/root&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_SCRIPT_URL=&amp;lt;REPLACE_WITH_YOUR_URL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-e ONEAGENT_INSTALLER_DOWNLOAD_TOKEN=&amp;lt;Api-Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
astromkey/oneagent &amp;lt;INSTALLER_PARAMETERS&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Для версий образов контейнеров ЕдиныйАгент раньше 1.69.1000, если после выполнения этой команды возникает ошибка &amp;lt;code&amp;gt;Container was not launched in host's cgroup namespace&amp;lt;/code&amp;gt;, добавьте &amp;lt;code&amp;gt;--cgroupns=host&amp;lt;/code&amp;gt; к параметрам и запустите ее повторно.&lt;br /&gt;
&lt;br /&gt;
После запуска контейнера выполняется стандартный установщик ЕдиныйАгент, и файлы ЕдиногоАгента развертываются в файловую систему машины, на которой запущен контейнер. Пакет установки и соответствующий сценарий оболочки загружаются из вашей среды при запуске контейнера, используя URL-адрес, предоставленный для запуска контейнера. Подпись установщика проверяется автоматически после загрузки. После успешного запуска контейнера его статус будет отмечен как &amp;lt;code&amp;gt;healthy&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|$ docker ps&lt;br /&gt;
&lt;br /&gt;
CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS                   PORTS     NAMES&lt;br /&gt;
&lt;br /&gt;
e3e1e513f0ff   astromkey/oneagent   &amp;quot;/bin/bash /tmp/entr…&amp;quot;   2 minutes ago   Up 2 minutes (healthy)             stupefied_elgamal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Развертка ЕдиногоАгента с помощью инструмента оркестрации контейнеров ==&lt;br /&gt;
Если вы используете инструмент оркестрации контейнеров, ваш оркестратор сможет развернуть контейнер ЕдиногоАгента за вас. Приведенные ниже примеры показывают, как использовать инструменты оркестрации для развертывания ЕдиногоАгента на всех ваших узлах.&lt;br /&gt;
&lt;br /&gt;
* [[Развертывание ЕдиногоАгента на Mesos/Marathon|Используйте ЕдиныйАгент с Mesos/Marathon]]&lt;br /&gt;
* [[Настройка Ключ-АСТРОМ в Kubernetes|Запуск ЕдиногоАгента с Kubernetes]]&lt;br /&gt;
* [[Мониторинг Elastic Container Service (ECS)с помощью типа запуска EC2|Запуск ЕдиногоАгента с помощью Elastic Container Service]]&lt;br /&gt;
* [[Настройка Ключ-АСТРОМ на Cloud Foundry|Настройте Ключ-АСТРОМ ЕдиныйАгент в Cloud Foundry]]&lt;br /&gt;
&lt;br /&gt;
== Пользовательская установка с использованием параметров командной строки ==&lt;br /&gt;
В качестве альтернативы вы можете выполнить [[Установка ЕдиногоАгента в Linux|пользовательскую установку с использованием параметров командной строки]].&lt;br /&gt;
&lt;br /&gt;
== Привилегии ==&lt;br /&gt;
Для получения дополнительной информации о необходимых привилегиях для OneAgent, развернутого в виде контейнера '''Docker''', см. раздел [[Привилегии ЕдиногоАгента для мониторинга контейнеров]].&lt;br /&gt;
&lt;br /&gt;
== Ограничения ==&lt;br /&gt;
&lt;br /&gt;
* ЕдиныйАгент имеет доступ только к дискам, смонтированным внутри контейнера, в котором он работает. Поэтому ЕдиныйАгент может сообщать метрики только для дисков этого контейнера, а не для дисков нижележащих хостов. Это связано с контекстом, в котором ЕдиныйАгент выполняет свои команды для сбора данных.&lt;br /&gt;
* Глубокий мониторинг нативных (т.е. неконтейнеризированных) процессов на хостах отключен. Файл внедрения &amp;lt;code&amp;gt;ld.so.preload&amp;lt;/code&amp;gt; в файловой системе хоста не изменяется, поэтому автоматическое внедрение в процессы, работающие вне контейнеров, невозможно.&lt;br /&gt;
* Поэтому расширение '''JMX''' может работать только с процессами, работающими внутри контейнеров. Расширение '''JMX''' тесно связано с глубоким мониторингом процессов Java.&lt;br /&gt;
* Захват сбоев приложений и дампов памяти с помощью этой функции &amp;lt;code&amp;gt;oneagentdumpproc&amp;lt;/code&amp;gt; не поддерживается.&lt;br /&gt;
* ЕдиныйАгент не зарегистрирован в системе автозапуска. Время жизни и запуск контейнера с процессами ЕдиногоАгента управляются '''Docker'''.&lt;br /&gt;
* Поддерживаются все [[Установка ЕдиногоАгента в Linux|параметры командной строки установщика]], за исключением &amp;lt;code&amp;gt;INSTALL_PATH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOG_PATH&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DATA_STORAGE&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Между контейнером, в котором развернут ЕдиныйАгент, и контейнерами приложений, которые необходимо инструментировать (т.е. в которых включен глубокий мониторинг процессов), существует зависимость при запуске. Контейнер ЕдиногоАгента должен быть запущен, а процесс &amp;lt;code&amp;gt;oneagenthelper&amp;lt;/code&amp;gt; должен работать до запуска контейнера приложения, чтобы приложение могло быть корректно инструментировано.&lt;br /&gt;
&lt;br /&gt;
== Обновление ЕдиногоАгента в контейнерах Docker ==&lt;br /&gt;
Для обновления ЕдиногоАгента в контейнерах '''Docker''' следуйте инструкциям, соответствующим тому, как вы установили ЕдиныйАгент.&lt;br /&gt;
&lt;br /&gt;
* Если вы установили ЕдиныйАгент на Linux, следуйте инструкциям по его [[Обновление ЕдиногоАгента в Linux|обновлению в Linux]].&lt;br /&gt;
* Если вы установили ЕдиныйАгент на Windows, следуйте инструкциям по его [[Обновление ЕдиногоАгента КлючАстром в Windows|обновлению в Windows]].&lt;br /&gt;
* Если вы развернули ЕдиныйАгент в виде контейнера Docker, перезапустите контейнер, используя следующую команду.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ docker restart oneagent&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
при условии, что вы добавили этот параметр &amp;lt;code&amp;gt;--name=oneagent&amp;lt;/code&amp;gt; в соответствующую команду '''Docker run'''. Образ Docker ЕдиныйАгент автоматически загрузит последнюю версию ЕдиногоАгента.&lt;br /&gt;
&lt;br /&gt;
Если в настройках обновлений ЕдиногоАгента вы указали версию ЕдиногоАгента по умолчанию для новых хостов и приложений, образ Docker ЕдиныйАгент автоматически загрузит определенную версию ЕдиногоАгента по умолчанию.&lt;br /&gt;
&lt;br /&gt;
* Автоматическое обновление ЕдиногоАгента '''&amp;lt;u&amp;gt;не поддерживается&amp;lt;/u&amp;gt;''', если ЕдиныйАгент развернут '''&amp;lt;u&amp;gt;в виде образа Docker&amp;lt;/u&amp;gt;'''.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>