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:
- docker-ce v18+
- docker-compose v1.19.0+
- 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:
- 80, 443 - HTTP and HTTPS ports for the Web Application (by default redirection to 443)
-
2550 - TCP port for the Data Processor service
- 32550 - TCP port for the Remote Data Processor to connect to local Data Processor
-
2551 - TCP port for the Seed service
- 32551 - TCP port for the Remote Data Processor to connect to local Seed
- 3306 - MySQL port for external access to the database
- 8080, 8443 - HTTP and HTTPS ports for the REST API Data Processor Service (only one port is enabled at one time)
- 8081 - TCP port for the Monitoring service
1. SSH to the server
- 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
- Depending on the version, you will be given a link to the corresponding MI app installation package.
- Along with the link, Username and Password will be provided by the MI support team; enter these credentials into the respective fields.
- Confirm your agreement with the Terms and Conditions of the Metric Insights usage.
- 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
-
base
- subfolder with default /opt/mi file system for MI application
-
build.properties
- file listing MI component versions
-
data
- subfolder with binaries and miscellaneous data
-
installer.py
- python script that initializes the Metric Insights installation process
-
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.
5.2. The following list of parameters can be used when running the installer (from the help)
6. Security
./installer.py --restrict-access mysql,dataprocessor
This allows for situations where only the UI is accessible externally.