Single Server Docker Deployment (Simple Install)

This article details how to install Metric Insights on a single server. Because this is a non-orchestrated deployment (meaning there is no automated management of the containers), we call this a 'Simple Install'.

PREREQUISITES: 

For servers with closed access to the web, the host machine must have the following packages installed manually to support the application:

  1. docker-ce v18+
  2. docker-compose v1.19.0+
  3. python v2/v3

For servers with outbound access to the web, the packages above will be installed by the Metric Insights installer automatically. 

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 Web Application (by default redirection to 443)
  2. 2550 - TCP port for the Data Processor service
    • 32550 - TCP port for the Remote Data Processor to connect to local Data Processor
  3. 2551 - TCP port for the Seed service
    • 32551 - TCP port for the Remote Data Processor to connect to local Seed
  4. 3306 - MySQL port for external access to the database
  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 the Monitoring service

1. SSH to the server

  1. SSH to the host server (where x.x.x.x represents the IP of the server, or use the hostname):  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 docker images and binaries required to install the application).

3. Package Overview

  1. base 
    • subfolder with default /opt/mi file system for MI application
  2. build.properties 
    • file listing MI component versions
  3. data 
    • subfolder with binaries and miscellaneous data
  4. installer.py 
    • python script that initializes the Metric Insights installation process
  5. utils 
    • subfolder containing common libraries used by installer.py
    • also holds 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/8
  • CentOS 7/8
  • Oracle Linux 7/9
  • Ubuntu 16/18
  • Debian 8/10

5. Run the installer

Please make sure to set the correct timezone for the application when running the installer using the --timezone parameter

We recommend checking the help to ensure appropriate parameters are defined for the install. To see the help:

./installer.py -h

./installer.py --bind-address 0.0.0.0 --timezone 'US/Pacific' -vv

The installer command above is an example of installing the application where the timezone is set to Pacific Time. Setting the --bind-address to 0.0.0.0 is also key. Other timezone examples are:

Eastern Time

  • --timezone 'US/Eastern'  

Central Time

  • --timezone 'US/Central'

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

The "Waiting while all provision actions are completed" can take a while, so it's not so unusual. While it's running, in a separate terminal, please tail /opt/mi/log/web.log to see what it's doing.

5.1. Basic console commands

The following list of utilities are available to use on the host.

Note, all of these tools become available only if the Web Component is installed.

mi-console Wrapper for docker-compose; used to enter the Web docker container directly
mi-control Wrapper for docker-compose; used to manage Metric Insights docker containers (stop, start, restart, etc.)
mi-version Displays the Metric Insights version in the command line

5.2. The following list of parameters can be used when running the installer (from the 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

./installer.py --restrict-access mysql,dataprocessor

This allows for situations where only the UI is accessible externally.