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

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

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

  • alert — контейнер для работы с сервисом настроек уведомлений в платформе;
  • carbonapi — API-сервис для передачи метрик в Grafana и интерфейс платформы;
  • carbon_clickhouse — агрегатор метрик использования ВМ и узлов кластера;
  • clickhouse_server — база данных метрик использования ВМ и узлов кластера;
  • consul — контейнер для работы с системой обнаружения сервисов Consul. Подробнее o Consul см. в официальной документации;
  • customize — управление настройками клиентского сервиса;
  • grafana — контейнер для работы с системой визуализации мониторинга grafana;
  • graphite_clickhouse — сервис преобразования метрик в формат graphite;
  • importer — сервис миграции из VMmanager 5;
  • mysql — контейнер для работы СУБД MySQL;
  • nodewatch — сервис отслеживания статуса узлов кластера;
  • notifier — сервис отслеживает текущие события и при смене их статуса вызывает всплывающие сообщения;
  • pgsql — контейнер для работы СУБД PostgreSQL (только для новых установок VMmanager Infrastructure на ОС Astra Linux, начиная с версии 2023.06.1);
  • plugin — контейнер для работы с плагинами;
  • registrator — контейнер для динамического создания новых контейнеров для nginx;
  • scheduler — контейнер для работы с расписанием резервного копирования;
  • statistic — сервис управления статистикой;
  • swagger — сервис интерактивной оболочки Swagger;
  • taskmgr — сервис обработки задач. Собирает, хранит и выводит информацию о них в разделе Задачи;
  • telegram-srv — контейнер, отвечающий за отправку уведомлений в Telegram;
  • vm_auth_back4_1  — сервис для регистрации и авторизации пользователей в VMmanager. Отвечает за настройки профиля и работу с SSH-ключами; 
  • vm_batch_1 (vm-batch-1) — выполнение последовательности запросов;
  • vm_box — основной контейнер. В нём расположены сервисы для работы платформы;
  • vm_dns_proxy_1 — контейнер для работы с плагином интеграции с DNSmanager 6;
  • vm_input_1 — контейнер с веб-сервером nginx. Обеспечивает доступ ко всем сервисам платформы;
  • vm_ipmgr_1 — контейнер для работы с сервисом IPmanager;
  • vm_ldap_1 — контейнер для синхронизации с каталогом LDAP;
  • vm_metric_collector_1 — сервис сбора метрик VMmanager;
  • vm_msgsender_1 — контейнер для отправки Email-сообщений пользователям VMmanager. Например, о завершении создания ВМ или переустановки ОС;
  • vm_validator_1 — контейнер для проверки содержимого POST-запросов.

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

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


Для просмотра списка запущенных контейнеров подключитесь к серверу с VMmanager по SSH и введите:

docker ps
CODE

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

docker exec -it containerID bash
CODE

containerID — уникальный номер запущенного контейнера. Отображается в терминале после ввода команды docker ps. 

Сервисы контейнера 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.

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

  1. Перейдите в контейнер vm_box: 

    docker exec -it vm_box bash
    CODE
  2. Откройте список активных процессов: 

    ps ax
    CODE

Логирование

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

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


Может быть полезно

Связанные статьи:

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