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;
- auth — service for user registration and authorization in VMmanager. It processes profile settings and SSH-keys;
- balancer — container for balancer operation;
- batch — execution of query sequence;
- carbon_clickhouse — aggregator of VM and cluster node usage metrics;
- carbonapi — API service for transferring metrics to Grafana and platform interface;
- clickhouse_server — database of VM and cluster node usage metrics;
- consul — container for Consul service detection system. Read more about Consul in the official documentation;
- customizer — management of client service settings;
- dsw — management of network setting templates;
- grafana — grafana monitoring visualization container;
- graphite_clickhouse — service for converting metrics to graphite format;
- importer — service of migration from VMmanager 5;
- input — container with nginx web server. Provides access to all platform services;
- ipmgr — IPmanager service container;
- ldap — container for synchronization with the LDAP directory;
- license — container for the licensing service;
- metric_collector — VMmanager metrics collection service;
- msgsender — container for sending emails to VMmanager users. E.g., after the virtual machine is successfully created or the operating system is reinstalled;
- mysql — 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;
- 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;
- validator — POST query content check service;
- vm_box — the main container with the services for the platform;
- vm_dns_proxy_1 — DNSmanager 6 integration plugin container.
Access to the platform is provided via HTTPS protocol. Communication between the platform and cluster nodes is organized via SSH protocol.
Container management
To view the list of running containers connect to the server with VMmanager via SSH and enter:
docker ps
To go to the container, enter:
docker exec -it containerID bash
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:
-
Go to the container vm_box:
docker exec -it vm_box bash
-
Open the list of active services:
ps ax
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 vmwatch service is vmwatch.log.