Docker Deployment (Simple Installer)

This article will detail how to setup and install the most basic Docker deployment available in 6.+


For servers with closed outbound access to the internet, in order to deploy Metric Insights using simple installer, the host machine must have the following packages installed manually:

  1. docker-ce
  2. docker-compose 1.19.0+

For servers open to internet, these 2 packages will be installed by the MI installation package.

3. Python v2 or v3


Simple installation architecture

If you are using a firewall on the Linux machine, the following ports are necessary for Metric Insights to work correctly:

  1. 80, 443 - HTTP and HTTPS ports for the UI Application Service (by default redirection to 443)
  2. 2550 - TCP port for the Data Processor cluster
  3. 2551 - TCP port for the Seed Node Service
  4. 3306 - MySQL port to get access from outside
  5. 8080, 8443 - HTTP and HTTPS ports for the REST API Data Processor Service (only one port is enabled at one time)
  6. 8081 - TCP port for Monitoring Tool

1. SSH to the server

  1. SSH to the host server, as in this example where x.x.x.x represents the IP of the server (or use the cname):  ssh root@x.x.x.x 

Note: The Metric Insights application must be installed as user root or as a user with sudo privileges (added to the wheel or sudo group, thereby included in the sudoers list). The docker daemon binds to a unix socket instead of a tcp port, therefore unix sockets are owned by user root and accessible by users with sudo privileges.

2. Download the MI app installation package

  1. Depending on the version, you will be given a link to the corresponding MI app installation package.
  2. Along with the link, Username and Password will be provided by the MI support team; enter these credentials into the respective fields.
  3. Confirm your agreement with the Terms and Conditions of the Metric Insights usage.
  4. Click [Submit].

This will initiate the download process of the .tar.gz archive (containing all files required to install the system).

3. Package Overview

  1. base 
    • subfolder with basic /opt/mi directory structure that will be overwritten by next update 
    • a file with specified components versions
  3. data 
    • a subfolder with binary data and miscellaneous data (such as dependencies list and credentials for pulling docker images from by Installer in case with Lite type of package)
    • the main executive file that initializes the Metric Insights installation process
  5. utils 
    • folder containing common libraries used by
    • also has third-party libraries

4. Supported Operating Systems

Metric Insights v6.x can be installed on the following Operating Systems (any OS with Linux kernel >= 3.10):

  • RHEL 7
  • CentOS 7
  • Oracle Linux 7
  • Ubuntu 16/18
  • Debian 7/8

5. Run the installer

Normally, the application can be installed by simply running ./ -v  but we recommend checking the help to ensure appropriate parameters are defined for the install. To see the help:

./ -h

./ -v

Once the installation is complete, you will see a "Metric Insights application installed successfully" message.

5.1. Basic console commands

Not all tools will be installed with all components, each component has only: mi-version and mi-control. All of these tools become accessible only if the Web Component is installed.

mi-app-backup Wrapper for mi-app-backup (/opt/mi/backup is an internal mount point from the web docker container)
mi-app-restore Wrapper for mi-app-restore
mi-console Connect to the MI UI docker container directly
mi-control Docker-compose wrapper helping to manage Metric Insights docker containers
mi-cron Wrapper for mi-cron manipulating the MI cron tasks inside the docker container
mi-db-dump Wrapper for mi-db-dump
mi-db-mgr Wrapper for mi-db-mgr
mi-ldap-usersync Wrapper for mi-ldap-usersync
mi-maintenance Wrapper for mi-maintenance
mi-passwd Wrapper for mi-passwd
mi-version Show the installed Metric Insigths version

5.2. The list of arguments that can be used during installation (from help)

Optional Parameters
-h, --help Show this help message and exit
-v, --verbose Verbose logging (default: False)
-y, --yes Assume "yes" on interactive requests (default: False)
--path INSTALL_PATH Base path for Metric Insights (default: /opt/mi)
--dp-hostname DATAPROCESSOR_HOSTNAME Data Processor service hostname for external services
--skip-packages Skip installation of any additional packages (default: False)
--show-packages Show packages required to run Metric Insights (default: False)
--db-ram-config DB_RAM_CONFIG Amount of RAM (integer value in gigabytes) on the MI Database Server. Options: [12,16,32] (default: None)
--db-hostname DB_HOSTNAME MySQL hostname of a Database server (default: mysql)
--db-port DB_PORT MySQL port for db-hostname (default: 3306)
--db-user DB_USER MySQL admin user name to init a Metric Insights database (default: root)
--db-password DB_PASSWORD MySQL admin user password
--dp-db-password DP_DB_PASSWORD MySQL Data Processor user password
--restrict-access RESTRICT_ACCESS Comma separated list of the MI services that must not have outside access. By default, all services are openned externally. Example: web, mysql, dataprocessor, seed (default: None)
--unprivileged During installation, skip actions that require root access, like system package installation. CAUTION: system must already have all the required packages installed (default: False)
--seed-hostname DATAPROCESSOR_SEED_HOSTNAME Data Processor seed service hostname for external services
--dp-url DP_URL Set Data Processor REST-API URL (default: http://dataprocessor:8080)
--dp-user DP_USER User to get access to the Data Processor REST-API service (default: dataprocessor)
--dp-password DP_PASSWORD Password for the Data Processor REST-API user (default: None)
--dp-enable-ssl Enable HTTPS for the Data Processor REST-API service. Ensure that correct SSL certificate and DP URL are provided (default: False)
--components COMPONENTS Comma separated list of components to deploy. Possible values: web, mysql, dataprocessor, seed (default: web, mysql, dataprocessor, seed)

6. Security

./ --restrict-access mysql,dataprocessor

This way only UI can be accessible from thе outside.