Gather machine stats from remote environments

Overview

Getting an accurate view of your infrastructure needs is useful when planning a cloud migration. Most datacenter operations groups have a good view of their overall storage utilization from various SAN and virtualization management tools, but relying on these aggregated data points often causes teams to underestimate the storage needs of their applications in the cloud.

When taking an application-centric approach to cloud migration, getting the resource utilization from each individual server gives you a more accurate view of each application’s resource requirements in the cloud and ignores the trickery of thin-provisioning from SAN tools. This allows you to confidently plan data replication time, or other migration metrics on an app-by-app basis.

Windows

Introduction

This is a simple and effective way to gather machine stats (RAM, Storage, CPU) from a Windows Server environment. It uses WinRM to Invoke-Command across your servers, creating a JSON file to securely send to your Tidal Migrations instance using the tidal command.

Requirements and Dependencies

Prior to the steps on syncing your hypervisors, be sure to have the below dependencies setup:

Running the Script

Start syncing your servers with Tidal Migrations, by running the script: runner.ps1.

  1. It will prompt you to set your username.

  2. Then, run the script: save_password.ps1 and enter your password when prompted. This will save your credentials securely in a text file.

  3. Save a list of the server hostnames that you would like to sync in a file called: servers.txt. The data of these servers will be shown in a table, with numerical values rounded to the nearest second decimal.

And there you have it! Your servers will be synced to Tidal Migrations.

Unix-like systems

Introduction

Machine Stats for Linux/Unix leverages Ansible to gather facts in a cross-platform way.

Requirements and Dependencies

Prior to the steps on syncing your Unix/Linux machines, be sure to have the below dependencies setup:

Running the Script

  1. Create a hosts file in the current directory.

  2. Add connection strings in the form of ssh-user@ip-address or ssh-user@domain to the hosts file one per line If the ssh-user@ part is omitted, then the current user name is used.

  3. If you need to use a custom SSH identity file for some particular host, provide it as the following:

     my-user@example.com ansible_ssh_private_key_file=path/to/key-file.pem
    
  4. Execute runner and pipe its output to Tidal Tools:

     $ ./runner | tidal sync servers
    

For more details on configuration and usage, please check Machine Stats for Unix-like systems technical documentation.