Docker
Агент мониторинга доступен в виде Docker-контейнера, собранного на базе ubi образа Astra Linux 1.8.
Поддерживается только linux контейнеры архитектуры amd64.
Примечание
Вам может потребоваться добавить sudo
перед командой или добавить пользователя в docker
группу. Для получения дополнительной информации см. шаги после установки Linux для Docker Engine.
Образ контейнера агента доступен по адресу registry.astralinux.ru/am/agent:latest
Перед началом установки
Убедитесь что docker engine установлен и доступен в системе.
Создайте файл конфигурации
Для запуска агента требуется указать адрес для его подключения. Агент должен иметь доступ к компоненту config-api через прокси шлюз. По умолчанию, точка подключения агента для docker-compose версии находится на 8427 порту сервера мониторинга, для kubernetes есть преднастроеный ingress vmauth, выступающий точкой подключения агентов.
Важно
Ниже представлен пример минимальной конфигурации агента. Подробнее про возможные сценарии, аргументы и параметры можно узнать в разделе конфигурирования агента.
Конфигурационный файл должен находиться в одной директории с запускаемым файлом агента. По умолчанию, это /opt/am-agent/config.yml
для Linux-систем и C:\Program Files\am-agent\config.yml
для Windows-систем.
general:
# адрес для подключения vmauth(8427) или другой агент с proxy agent(9700)
upstream_address: https://astra-monitoring.server:8427
insecure: True # игнорировать самоподписаный сертификат для https
# name: Имя_в_интерфейсе # имя агента
# hostname: hostname # имя хоста агента
# auth_token: <upstream_token> # токен для подключения
Замените general.upstream_address
на адрес своего сервера astra-monitoring.
Хранение данных агента
Агент хранит свою конфигурацию на сервере мониторинга и фактически, все данные что ранятся локально, будут восстановлены после перезагрузкии системы. Такие данные как «экспортёры» или их конфигурации будут скачены из системы мониторинга. Некоторые компоненты к примеру для сбора логов пишут локально кеш с отправленными с обранными чанками, потеря этой информации может привести к утере части данных отправляемых на сервер. Критически важной информацией, которую хранит агент является его id, он хранится в папке с данными агента в файле ID_agent. По данному id идентифицируется конфигурация агента на сервре, так что его хранение является крайне важным для корректности работы системы.
Чтобы избежать потери данных, вы можете настроить постоянное хранилище с помощью томов Docker или связать локальную директорию с директорией в контейнере.
Примечание
Хотя оба метода похожи, есть небольшая разница. Если вы хотите, чтобы ваше хранилище полностью управлялось Docker и к нему можно было получить доступ только через контейнеры Docker и Docker CLI, вам следует выбрать постоянное хранилище docker volume
. Однако если вам нужен полный контроль над хранилищем и вы хотите разрешить другим процессам, помимо Docker, получать доступ к слою хранилища или изменять его, то bind mounts
— правильный выбор для вашей инсталяции.
Ипользование Docker volume (рекомендуется)
Используйте тома Docker, если вы хотите, чтобы Docker Engine управлял томом хранилища.
Чтобы использовать тома Docker для постоянного хранения, выполните следующие действия:
Создайте том Docker, который будет использоваться контейнером Agent, дав ему описательное имя (например, agent_data). Выполните следующую команду:
Использование Docker bind mounts
Если вы планируете использовать каталоги на своем хосте для базы данных или конфигурации при запуске агента в Docker, вам необходимо запустить контейнер с пользователем, имеющим разрешение на доступ и запись в используемый вами каталог.
Создайте директорию которая будет использована для хранения данных
# создание директории
sudo mkdir -p /opt/am-agent
# назначение прав для пользователя
sudo chown -R $USER:$USER /opt/am-agent
Запуск через docker cli
Примечание
В приведённых ниже командах используется ранее созданный volume „agent_data“. Для использования bind mounts необходимо заменить agent_data
в строке -v agent_data:/opt/am/data
на путь к директории на хосте.
docker run -d \
--name agent \
--hostname my-agent \
--privileged \
--pid host \
-v agent_data:/opt/am/data \
-v /opt/am-agent/config.yml:/opt/am/config.yml \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
-p 9700:9700 \
registry.astralinux.ru/am/agent:latest \
--dir /opt/am/data \
--config /opt/am/config.yml
Параметры подключения должны быть заданы в файле конфигурации /opt/am-agent/config.yml
При управлении через конфигфайл требуется перезагрузка контейнера для применения изменений.
docker run -d \
--name agent \
--hostname my-agent \
--privileged \
--pid host \
-v agent_data:/opt/am/data \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
-p 9700:9700 \
registry.astralinux.ru/am/agent:latest \
--dir /opt/am/data \
--httpProxy 0.0.0.0:9700 -i \
--upstreamAddr http(s)://astra-monitoring.server:8427
Параметры подключения должны быть заданы в --upstreamAddr
(замените http(s)://astra-monitoring.server на свой адрес подключения агента, адрес компонента vmauth в сервреной части мониторинга)
Остановить контейнер агента
Чтобы остановить контейнер Agent, выполните следующую команду:
Запуск через docker compose
Чтобы запустить последнюю версию агента с помощью docker compose выполните следующие действия:
Создайте
docker-compose.yaml
файл.
# переходим в директорию где будет создан docker-compose файл
cd /opt/am-agent
# создание docker-compose.yaml файла
touch docker-compose.yaml
Добавьте следующий код в
docker-compose.yaml
файл.
Примечание
В приведённых ниже командах используется ранее созданный volume „agent_data“. Для использования bind mounts необходимо заменить agent_data
в блоке volumes
на путь к директории на хосте.
version: "3.8"
volumes:
agent_data: {}
services:
agent:
image: registry.astralinux.ru/am/agent:latest
container_name: agent
restart: unless-stopped
hostname: agent
privileged: true
pid: host
ports:
- 9700:9700
command:
- "--config"
- "/opt/am/config.yml"
- "--dir"
- "/opt/am/data"
volumes:
- agent_data:/opt/am/data
- /opt/am-agent/config.yml:/opt/am/config.yml
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
Параметры подключения должны быть заданы в файле конфигурации /opt/am-agent/config.yml
При управлении через конфигфайл требуется перезагрузка контейнера для применения изменений.
version: "3.8"
volumes:
agent_data: {}
services:
agent:
image: registry.astralinux.ru/am/agent:latest
container_name: agent
restart: unless-stopped
hostname: agent
privileged: true
pid: host
ports:
- 9700:9700
command:
- "--upstreamAddr"
- "http(s)://astra-monitoring.server:8427"
- "--httpProxy"
- "0.0.0.0:9700"
- "--dir"
- "/opt/am/data"
volumes:
- agent_data:/opt/am/data
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
Параметры подключения должны быть заданы в --upstreamAddr
(замените http(s)://astra-monitoring.server на свой адрес подключения агента, адрес компонента vmauth в сервреной части мониторинга)
Для запуска
docker-compose.yaml
выполните следующую команду:
Для проверки работы контейнера можно ознакомиться с его логом, для этого необходимо выполнить:
Примечание
Для получения дополнительной информации об использовании команд Docker Compose обратитесь к документации docker compose.