Архитектура VMmanager построена с использованием Docker. Docker позволяет создавать и управлять контейнерами. Docker-контейнер — изолированная среда, в которой запущено приложение и настроено необходимое окружение.
Чтобы запустить docker-контейнер, необходим docker-образ (docker image). Он определяет какие процессы будут запущены в контейнере, с какими параметрами и настройками окружения. Например, образ может содержать пользовательское окружение с установленным веб-сервером и подходящими сетевыми настройками. Изменить docker-образ из запущенного контейнера невозможно.
VMmanager состоит из следующих docker-контейнеров:
- alert — контейнер для работы с сервисом настроек уведомлений в платформе;
- auth — сервис для регистрации и авторизации пользователей в VMmanager. Отвечает за настройки профиля и работу с SSH-ключами;
- 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;
- ldap — контейнер для синхронизации с каталогом LDAP;
- license — контейнер сервиса лицензирования;
- metric_collector — сервис сбора метрик VMmanager;
- msgsender — контейнер для отправки Email-сообщений пользователям VMmanager. Например, о завершении создания ВМ или переустановки ОС;
- mysql — контейнер для работы СУБД MySQL;
- nodewatch — сервис отслеживания статуса узлов кластера;
- notifier — сервис отслеживает текущие события и при смене их статуса вызывает всплывающие сообщения;
- pgsql — контейнер для работы СУБД PostgreSQL (только для новых установок VMmanager Infrastructure на ОС Astra Linux, начиная с версии 2023.06.1);
- plugin — контейнер для работы с плагинами;
- scheduler — контейнер для работы с расписанием резервного копирования;
- statistic — сервис управления статистикой;
- swagger — сервис интерактивной оболочки Swagger;
- taskmgr — сервис обработки задач. Собирает, хранит и выводит информацию о них в разделе Задачи;
- telegram-srv — контейнер, отвечающий за отправку уведомлений в Telegram;
- validator — контейнер для проверки содержимого POST-запросов;
- vault — хранилище секретных данных платформы (лицензия, SSH-ключи, ключ БД);
- vm_box — основной контейнер. В нём расположены сервисы для работы платформы;
- vm_dns_proxy_1 — контейнер для работы с плагином интеграции с DNSmanager 6.
Доступ в платформу осуществляется по протоколу HTTPS. Связь платформы с узлами кластера организована по протоколу SSH.
Как работать с контейнерами
Для просмотра списка запущенных контейнеров подключитесь к серверу с VMmanager по SSH и введите:
docker ps
Чтобы перейти в контейнер, введите:
docker exec -it containerID bash
Сервисы контейнера vm_box
Список сервисов
Основные сервисы контейнера vm_box:
- alert-wrapper — сервис следит за уведомлениями и передаёт их сервису notice_center;
- checker — сервис проверки данных запроса;
- forward-proxy — проверка прав доступа и перенаправление запроса;
- grafana_proxy — сервис проксирования запросов к grafana из платформы;
- hawatch — сервис взаимодействия с отказоустойчивым кластером;
- ifacewatch — сервис слежения за сетевыми интерфейсами, бондами и бриджами на узлах кластера;
- monitor — сервис сбора и отображения информации о текущем состоянии ВМ и узлов кластера;
- mon_proxy — сервис мониторинга платформы;
- nginx — веб-сервер для отображения интерфейса;
- node-alert — сервис слежения за узлами кластера;
- notice_center — сервис, отправляющий уведомления в интерфейс платформы.
- novnc — обеспечивает работу с VNC виртуальных машин;
- rdns_syncer — сервис синхронизации обратных DNS-записей;
- supervisord — система для управления сервисами. Автоматически перезапускает сервисы при отказе. Подробнее см. в официальной документации;
- task-alert — сервис отслеживания статуса уведомления;
- updater — сервис обновления VMmanager;
- uploader — сервис загрузки ISO-образов;
- user_syncer — сервис синхронизации данных о пользователях;
- vm — сервис, обеспечивающий работу VMmanager;
- vm-alert — сервис слежения за ВМ;
- vmwatch — сервис отслеживания статуса ВМ;
- worker — выполнение задач от сервиса taskmgr.
Чтобы вывести полный список запущенных сервисов:
-
Перейдите в контейнер vm_box:
docker exec -it vm_box bash
-
Откройте список активных процессов:
ps ax
Логирование
Лог-файлы всех сервисов VMmanager хранятся в контейнере vm_box в директории /var/log. Имя лог-файла совпадает с названием сервиса. Например, лог-файл сервиса vmwatch называется vmwatch.log.