Режим фокусировки

Структура VMmanager

Архитектура VMmanager построена с использованием Docker. Docker позволяет создавать и управлять контейнерами. Docker-контейнер — изолированная среда, в которой запущено приложение и настроено необходимое окружение.

Чтобы запустить docker-контейнер, необходим docker-образ (docker image). Он определяет какие процессы будут запущены в контейнере, с какими параметрами и настройками окружения. Например, образ может содержать пользовательское окружение с установленным веб-сервером и подходящими сетевыми настройками. Изменить docker-образ из запущенного контейнера невозможно.

VMmanager состоит из следующих docker-контейнеров: 

  • alert — контейнер для работы с сервисом настроек уведомлений в платформе;
  • auth  — служба для регистрации и авторизации пользователей в VMmanager. Отвечает за настройки профиля, работу с SSH-ключами и синхронизацию с каталогом LDAP;
  • auth_front - служба авторизации на фронтенд;
  • balancer — контейнер для работы балансировщика; 
  • batch — выполнение последовательности запросов;
  • carbon_clickhouse — агрегатор метрик использования ВМ и узлов кластера;
  • carbonapi — API-сервис для передачи метрик в Grafana и интерфейс платформы;
  • clickhouse_server — база данных метрик использования ВМ и узлов кластера;
  • consul — контейнер для работы с системой обнаружения сервисов Consul. Подробнее o Consul см. в официальной документации;
  • customizer — управление настройками клиентского сервиса;
  • dsw — управление шаблонами сетевых настроек;
  • grafana — контейнер для работы с системой визуализации мониторинга grafana;
  • graphite_clickhouse — сервис преобразования метрик в формат graphite;
  • importer — сервис миграции из VMmanager 5;
  • input — контейнер с веб-сервером nginx. Обеспечивает доступ ко всем сервисам платформы;
  • ipmgr — контейнер для работы с сервисом IPmanager;
  • license — контейнер сервиса лицензирования;
  • metric_collector — сервис сбора метрик VMmanager;
  • msgsender — контейнер для отправки Email-сообщений пользователям VMmanager. Например, о завершении создания ВМ или переустановки ОС;
  • mysql — контейнер для работы СУБД MySQL;
  • nodewarden — сервис взаимодействия с узлами кластера;
  • nodewatch — сервис отслеживания статуса узлов кластера;
  • notifier — сервис отслеживает текущие события и при смене их статуса вызывает всплывающие сообщения;
  • pgsql — контейнер для работы СУБД PostgreSQL (только для новых установок VMmanager Infrastructure на ОС Astra Linux, начиная с версии 2023.06.1);
  • plugin — контейнер для работы с плагинами;
  • san — сервис управления СХД;
  • scheduler — контейнер для работы с расписанием резервного копирования;
  • statistic — сервис управления статистикой;
  • swagger — сервис интерактивной оболочки Swagger;
  • taskmgr — сервис обработки задач. Собирает, хранит и выводит информацию о них в разделе Задачи;
  • telegram-srv — контейнер, отвечающий за отправку уведомлений в Telegram;
  • vault — хранилище секретных данных платформы (лицензия, SSH-ключи, ключ БД);
  • vm_back — служба обработки бэкенд-запросов;
  • vm_box — основной контейнер. В нём расположены сервисы для работы платформы;
  • vm_dns_proxy_1 — контейнер для работы с плагином интеграции с DNSmanager 6;
  • vm_front ---- служба обработки фронтенд-запросов.
  • vmr — сервис управления пользовательскими ролями.
Имена контейнеров до версии 2024.07.1

Доступ в платформу осуществляется по протоколу HTTPS. Связь платформы с узлами кластера организована по протоколу SSH.

Как работать с контейнерами

Для работы с контейнерами подключитесь к серверу с VMmanager по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.

Чтобы увидеть список запущенных контейнеров, введите команду:

docker ps

Чтобы перейти в контейнер, введите команду: 

docker exec -it containerID bash
Пояснения к команде

Сервисы основных контейнеров

vm_box

Основные сервисы контейнера vm_box:

  • check_rdns — cервис проверки обратных DNS-записей;
  • checker — сервис проверки данных запроса;
  • forward-proxy — проверка прав доступа и перенаправление запроса;
  • gosockify — служебный сервис для работы сервиса novnc;
  • grafana_proxy — сервис проксирования запросов к grafana из платформы;
  • mesh — сервис регистрации сетевых адресов контейнеров;
  • mon_proxy — сервис мониторинга платформы;
  • nginx — веб-сервер для отображения интерфейса;
  • notice_center — сервис, отправляющий уведомления в интерфейс платформы;
  • novnc — обеспечивает работу с VNC виртуальных машин;
  • sender — служебный сервис для сервиса notice_center;
  • supervisord — система для управления сервисами. Автоматически перезапускает сервисы при отказе. Подробнее см. в официальной документации
  • uploader — сервис загрузки ISO-образов;
  • vm-mover — сервис переноса платформы на ВМ.

Чтобы вывести полный список запущенных сервисов, выполните команду: 

docker exec -it vm_box ps ax

vm_back

Основные сервисы контейнера vm_back:

  • alert-wrapper — сервис следит за уведомлениями и передаёт их сервису notice_center;
  • ha-agent, hawatch — сервисы для работы отказоустойчивого кластера;
  • ifacewatch — сервис слежения за сетевыми интерфейсами, бондами и бриджами на узлах кластера;
  • mesh — сервис регистрации сетевых адресов контейнеров;
  • monitor — сервис сбора и отображения информации о текущем состоянии ВМ и узлов кластера;
  • node-alert — сервис слежения за узлами кластера;
  • resowatch — мониторинг потребления ресурсов на узлах кластера;
  • rdns_syncer — сервис синхронизации обратных DNS-записей;
  • supervisord — система для управления сервисами. Автоматически перезапускает сервисы при отказе. Подробнее см. в официальной документации
  • task-alert — сервис отслеживания статуса уведомления;
  • taskmgr — сервис обработки задач;
  • vm — сервис, обеспечивающий работу VMmanager;
  • vm-alert — сервис слежения за ВМ;
  • vmwatch — сервис отслеживания статуса ВМ;
  • worker — выполнение задач от сервиса taskmgr.

Чтобы вывести полный список запущенных сервисов, выполните команду: 

docker exec -it vm_back ps ax

Логирование

Лог-файлы сервисов VMmanager хранятся в директории /var/log контейнера. Имя лог-файла совпадает с названием сервиса. Например, лог-файл сервиса vmwatch называется vmwatch.log.

Схема работы VMmanager

Может быть полезно
Связанные статьи:

Статьи из базы знаний: