VMmanager structure
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_back_1, vm_auth_back4_1 — services for user registration and authorization in VMmanager. They process profile settings and SSH-keys;
- vm_box — the main container with the services for the platform;
- vm_dns_proxy_1 — PowerDNS 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
To go to the container, enter:
docker exec -it containerID bash
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;
- batch — execution of query sequence;
- 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;
- 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
CODEOpen 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.