VMmanager architecture is based on Docker allowing to create and manage containers. A Docker container is an isolated environment where an application is running and the required environment is configured.

A docker image is required for running a docker-container. It defines the processes that will run in a container, its parameters, and environment settings.  E.g. the image can contain a user environment with the pre-installed webserver and corresponding network settings.  It is not possible to change the docker image of a running container. 

VMmanager has following docker containers:

  • alert — container for platform notifications settings service;
  • carbonapi — API service for transferring metrics to Grafana and platform interface;
  • carbon_clickhouse — aggregator of VM and cluster node usage metrics;
  • clickhouse_server — database of VM and cluster node usage metrics;
  • consul — the container for Consul service detection system. Read more about Consul in the official documentation;
  • customize — management of client service settings;
  • grafana — grafana monitoring visualization container;
  • graphite_clickhouse — service for converting metrics to graphite format;
  • importer — service of migration from VMmanager 5;
  • mysql — the container for the database management system MySQL;
  • nodewatch — service for tracking the status of cluster nodes; 
  • notifier — monitors running events and shows pop-up notifications when their statuses are changed;
  • plugin — plugins container;
  • registrator — the container for dynamic creation of new containers for nginx;
  • scheduler — container for VMs backup schedule;
  • statistic — statistic management service;
  • swagger — service of the Swagger interactive shell;
  • taskmgr — tasks processing service that collects, keeps, and outputs information in the Tasks section;
  • telegram-srv — container responsible for sending notifications to Telegram messenger;
  • vm_auth_back4_1 — service for user registration and authorization in VMmanager. It processes profile settings and SSH-keys;
  • vm_batch_1 (vm-batch-1) — execution of query sequence;
  • vm_box — the main container with the services for the platform;
  • vm_dns_proxy_1 — DNSmanager 6 integration plugin container;
  • vm_input_1 — container with nginx web server. Provides access to all platform services;
  • vm_ipmgr_1 — IPmanager service container;
  • vm_ldap_1 — container for synchronization with the LDAP directory;
  • vm_metric_collection_1 — VMmanager metrics collection service;
  • vm_msgsender_1 — container for sending emails to VMmanager users. E.g., after the virtual machine is successfully created or the operating system is reinstalled;
  • vm_validator_1 — POST query content check service.

Container management


To view the list of running containers connect to the server with VMmanager via SSH and enter:

docker ps
CODE

To go to the container, enter:

docker exec -it containerID bash
CODE

containerID — the number of the running container. It will be displayed in the terminal when you enter the docker ps command. 

Services of the vm_box containers


Services

The main services of the vm_box container: 

  • alert-wrapper — this service monitors notifications and transmits them to the notice_center service;
  • checker — service for checking query data;
  • forward-proxy — access permissions check and query redirecting;
  • grafana_proxy — this is the service for proxying platform requests to grafana;
  • hawatch — service for interaction with a high availability cluster; 
  • ifacewatch — service for tracking network interfaces, bonds and bridges on cluster nodes; 
  • monitor — collects and displays the current status of the virtual machine and cluster nodes;
  • mon_proxy — platform monitoring service; 
  • nginx — the webserver for displaying the web interface; 
  • node_alert — cluster node tracking service;
  • notice_center — this service sends notifications to the platform interface;
  • novnc — this service supports VNC of virtual machines; 
  • rdns_syncer — reverse DNS records synchronization service;
  • supervisord — the service management system. It restarts the services automatically when they fail. For more information please refer to the official documentation
  • task-alert — service for tracking notification status;
  • updater — VMmanager update service; 
  • uploader — ISO images upload service;
  • user_syncer — user data synchronization service; 
  • vm — this service supports the operation of VMmanager;
  • vm-alert — VM tracking service;
  • vmwatch — VM status tracking service; 
  • worker — executes tasks of the taskmgr service.

To display a full list of running services:

  1. Go to the container vm_box: 

    docker exec -it vm_box bash
    CODE
  2. Open the list of active services: 

    ps ax
    CODE

Logs

The log files of all VMmanager services are kept in the vm_box container in the directory /var/log. The name of the log file matches the service name. E.g., the name of the log file of the taskmgr service is taskmgr.log

Product operation logic


Useful tips

Related topics:

Knowledge base articles: