MultiCloud Dashboard using Mist.IO

Mist is an open-source multicloud management platform

Btech Engineering
btech-engineering
5 min readMar 13, 2023

--

mist.IO — GITHUB

What is Mist.IO

Introduction

In today’s fast-paced business world, managing cloud infrastructure can be a daunting task. This is where Mist.io comes into play. Mist.io is a cloud management platform that provides a unified interface to manage your cloud infrastructure. It enables users to manage multiple clouds, automate common tasks, and monitor cloud resources from a single dashboard.

Cloud Management made easy

Mist.io is a cloud management platform that provides a comprehensive set of features to make the management of cloud infrastructure easier. With Mist.io, users can connect to multiple cloud providers, such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. This enables users to manage all their cloud infrastructure from a single interface.

Mist.io also provides automation capabilities that enable users to automate common tasks, such as scaling instances up or down based on usage patterns. This saves time and reduces the risk of human error. Additionally, Mist.io provides monitoring capabilities that enable users to monitor cloud resources in real-time. This ensures that issues are detected and resolved quickly, reducing downtime and ensuring business continuity.

Benefits of using Mist.io

Mist.io provides numerous benefits to its users. Firstly, it enables users to manage multiple clouds from a single interface, which saves time and reduces complexity. Secondly, it provides automation capabilities that enable users to automate common tasks, reducing the risk of human error and increasing efficiency. Thirdly, it provides monitoring capabilities that enable users to monitor cloud resources in real-time, ensuring that issues are detected and resolved quickly, reducing downtime and ensuring business continuity.

Lab

Requirements

  • Ubuntu as Operating System
  • 4 CPU
  • 8GB Ram
  • 10GB Disk (accessible to /var/lib/docker/)

Deployment Model

Mist.IO support 2 Deployment Model

  • Single Host Container Based (Using Docker Compose)
  • On Kubernetes Cluster (Using Helm)

in this scenario, we’ll be using deployment on a host using docker-compose. If you want to use Deployment on Kubernetes you can follow this step

Kubernetes Installation

Make sure you have installed helm

~# helm version
version.BuildInfo{Version:"v3.11.1", GitCommit:"293b50c65d4d56187cd4e2f390f0ada46b4c4737", GitTreeState:"clean", GoVersion:"go1.18.10"}

Run the following commands to install Mist:

## Add Mist Helm Repository
helm repo add mist https://dl.mist.io/charts
helm repo update

## Install mist using helm
helm install mist-ce mist/mist-ce

Single Host

Download docker-compose.yml from the latest stable release.

# Check the latest version at https://github.com/mistio/mist-ce/releases

## Download docker-compose file
wget https://github.com/mistio/mist-ce/releases/download/v4.5.4/docker-compose.yml

## Install mist using docker-compose up command
docker-compose up -d

## Check if your installation successfully
docker-compose ps

Next, set admin user for management in

docker-compose exec api sh

## Add new user
./bin/adduser --admin admin@yourdomain.com

# Use the -h option to check which options can be used
./bin/adduser -h

Reconfigure Setting, After all containers are up, a settings/setting.py as configuration file will be generated in the docker-compose.yml location. We can edit that file and then restart the container to apply config.

nano settings/setting.py
...
## Configure external url.
CORE_URI = "http://10.10.69.21" -> your ip host
...

docker-compose restart
docker-compose ps

Dashboard Login, The Mist dashboard service runs using port 80. After all containers are up, the dashboard can be accessed and use the credentials that have been created previously.

Features

1. User & Organization

At Mist.io, there is an organization that restricts the management or monitoring of each resource. For example, if you have clients A and B and you want to add the clouds used by each client to Mist.io by dividing them into different organizations. The main account is the main account, but there are also A and B organizations. The contents of the cloud will be in each organization.

2. Cloud

Here we can add several types of clouds:

  • Public cloud
  • Private cloud
  • HypervisorKVM
  • ContainerDocker, KubeVirt, LXD
  • Other Server

To access a Linux server remotely via SSH and a Windows server via RDP, you need the main credentials used in each cloud/server. For example, for AWS you need the Region, API key, and Secret key. For OpenStack, you need the user, password, auth URL, and tenant name.

3. Machines

This is where you can create a VM/instance. If you have multiple clouds, you can choose which cloud/server you want to create the VM/instance in. The menu displayed will vary depending on the selected cloud/server. Click the plus button (+) on the bottom right to add a VM/instance.

4. Cost Reporting

Cost reporting can be displayed either as a total cost or per VM.

5. Monitoring

Monitoring can be activated from the mist.io side by connecting a keypair to the target instance using the “associate key” option or manually by running the exec command on the client, for example:

 wget -O- https://gitlab.ops.mist.io/mistio/mist-telegraf/raw/master/scripts/install-telegraf.sh | sudo sh -s -- -m e0383da3793e42b5a86dbf9983fecaf1 -s http://10.10.69.21/ingress/c6cf8d06086af5cea9929a4414731a3754a8e4727acc5057bc71090a565fccfd

Here are some things that can be monitored:

  • Load, CPU, RAM, Uptime.
  • Network.
  • Disk.
  • You can also add other graphics such as swap, disk-specific I/O, disk read/write.

6. Script Feature

This script has two types, namely bash and ansible playbook. You can input the script in three ways, directly in the available column or through the inline editor, source from GitHub, and source from URL. This script can be used for running VM or creating a new VM. The way to use this feature is by entering the script when creating a new VM, then the script will run after the VM is up and running.

7. Rules Feature:

This feature can be used for the following:

  • Alerting when a VM is overloaded
  • Restarting a service or rebooting when not responding, or
  • Deleting log files when storage is less than 10%

However, the auto scaling Kubernetes feature is only available in the Enterprise Edition/Hosted Service version. There is no way to enable this feature on Mist-ce yet. Even though I want to try, there is no trial available.

Conclusion

In conclusion, Mist.io is a cloud management platform that provides a unified interface to manage your cloud infrastructure. Its comprehensive set of features makes cloud management easier, saving time and reducing complexity. With automation and monitoring capabilities, Mist.io ensures that cloud resources are managed efficiently and issues are detected and resolved quickly. If you are looking for a cloud management platform, Mist.io is definitely worth considering.

--

--

Btech Engineering
btech-engineering

Our mission is continuous learning and remember together is better.