Remote Agents

Remote Agents allow to separate some of the application functions to make them work in a disperse way. EasyDCIM is a host application, whereas the remote agent executes tasks delivered by such application only. The communication between the main application and the remote agent is based on the HTTP protocol and a server working on the 8080 port. Tasks are executed in the real time via API. The current status of a task can be verified in the main application – EasyDCIM. Although both of the applications may work in separate subnets, communication between the main application and the remote agent is a must.

0.png

Requirements

Here are the only requirements for remote agents:

  • Supported operating system: Debian 9 “Stretch”
  • EasyDCIM must be accessible from a remote agent in order to synchronize the data
  • Remote Agent must be accessible from EasyDCIM in order to synchronize the data
  • Open ports on the remote agent server: 8080

Memory and Processor

When it comes to RAM and CPU, the requirements increase linearly as the number of devices and ethernet ports added in the system grows. A process that uses the most of system resources is ‘Pooling Process’, activated automatically within the 5-minute intervals. We recommend a machine with 4GB of RAM and several processor cores that will help to quicken loading graphs simultaneously.

Storage I/O Throughput

Storage I/O Throughput is the narrowest bottleneck of the system. While drawing graphs or collecting data in the process of pooling there is a huge amount of reading/writing actions performed. We recommend the use of SSDs which provide considerable efficiency increase.

In-built components

Each agent contains three fundamental components, these are:

  • DHCP Server – the DHCP protocol allows devices to automatically provide a pool of IP addresses that are fetched by the DHCP server and later on assigned to each DHCP key when entering the network.
  • TFTP Server – TFTP is a protocol for transferring files through a network to other computers (PXE), used primarily for handling boot images.
  • Samba Server – a file and print server designed for Linux/Unix and closely cooperating with Windows that allows to operate on the same exact files, regardless of the previously mentioned platforms.
  • Devices Poller – a process responsible for collecting information on devices and its processing. Among the collected data there can be: transfer usage, current load and current power usage (demand for electricity)

Remote agents management

Adding a Remote Agent and its Installation

In order to add a remote agent, move to “Settings” section of the side bar menu, there find “Remote Agents”. Find and press “Add Remote Agent” located at the top of the page.

1.png

The remote agent can be installed on an external server with the right operating system. The list of supported operating systems can be found at the top of this article in Requirements section. When you have a ready server, use any system device to connect with the server via SSH. The whole installation is extremely easy, after you are correctly logged into the server, you must run just one installation command. That is how an exemplary installation command may look like:

apt-get install sudo && sudo wget http://EASYDCIM_IP/remote/download/installer.sh -O /opt/installer.sh && bash /opt/installer.sh

The above command will be used to download the installation script. Then it will be automatically run and all dependencies and system packages installed. After a correct installation, you will need to synchronize the remote agent with EasyDCIM application. Access data, that is IP address and API key of the remote agent, will be delivered when the installation script is over.

2.png

Next, you will need to provide the below explained data in the form, these are:

  • Name – name of the remote agent. That can be any name that will let you easily identify the remote agent
  • Remote Agent IP Address –IP address of the remote agent. In most of the cases, that will be the main IP address of the server where the remote agent is installed, e.g.:.10.10.177
  • Remote Agent API Key – API Key generated by the installer after a successful installation of the remote agent on an external server, e.g.: Nf3D9hlDmENoyu52nSG1HtIOB9J4yu7HTrwEZNzc
  • Remote Agent PXE IP – IP address used by the DHCP server to automatically install the operating system. Usually, it is the same address as the “Remote Agent IP Address”

Save the changes after filling in all the data in the form. The connection test between EasyDCIM and the remote agent will be run automatically. If the test ends with success, you will be redirected to the remote agent summary page.

Information on the Remote Agent Condition

Summary section includes any information on the agent’s current condition. You will find there the details on:

  • Synchronization Status - synchronization status between the remote agent and EasyDCIM
  • Connected Agent - remote agent that is currently synchronized
  • Remote Agent Version - remote agent current version number
  • Network Interfaces - a list of net interfaces configured on the remote agent together with master IP addresses
  • Password Protected Samba Share - a password to Samba resources on the remote agent server
  • Uptime – time of uninterrupted work of the remote agent
  • Last Update – remote agent last update

3.png

Here you may also find any information on the status of the services such as: DHCP, TFTP server or Samba server.

Collecting Device Data (Polling)

Polling is a process responsible for collecting data on devices, such as data transfer usage, current load and power usage. The process is automatically run on the remote agent server every 5 minutes. To assure accurate scalability of the application and even distribution of hardware resources, you can configure the remote agent so as to collect data on devices in a defined location, defined floor or defined rack cabinet. The polling section shows a list of devices on which data are collected using a remote agent.

5.png

By default, a remote agent is not assigned to any entity such as location, floor or rack. In order to define among which entities the polling process shall work, please use the Configuration option. The configuration form includes fields such as:

  • Polling Status – specifies whether the polling process shall be on or off on the remote agent
  • Use in locations – specifies locations among which the process of collecting data on devices shall work. All devices assigned to a single location will be taken into account while performing the polling process. When you need to collect data on all devices from a single location, you do not have to set up the below options (floor or rack cabinet).
  • Use in floors – define on which floors the polling process shall be performed. The floor section is of minor importance if only in the previous field specific locations have been selected. When you select a floor that does not belong to a location selected in the previous field, the polling process will be performed on all devices in selected locations and devices from the additionally pointed floors.
  • Use in racks – define the rack cabinets on which the polling process shall be performed. This options works alike “Use in Floors”, it allows to define additional rack cabinets that will be taken into account during the polling process.
  • Status Fields – define the base method to verify the device status. By default, EasyDCIM uses “fping” system command and the device IP address to define the device status. You can select additional options, such as: checking device status based on hostname and checking device status based on IPMI

6.png

Remaining configuration options should be set up only in special cases when the response time from a device is rather long.

Provisioning Servers

This section allows to add provisioning servers used to automatically install operating systems using a remote agent. More information on installing operating systems can be found here: Remote Provisioning Module

Each provisioning server can be assigned to more than one location and have its own installation templates. In order to add a new operating system, you need to find and use the “Add OS Provisioning Server” option in the action menu. The form includes following fields:

  • Provisioning Server Name – name, it can be any name that will allow to distinguish the provisioning server
  • Use in locations - specifies locations among which the provisioning server shall work.

Next, you will be redirected to the advanced configuration view that includes below described fields:

  • Remote Agent - remote agent we want to use
  • Reboot Method - device restart method
    • Manual - manual restart of the device by an administrator
    • IPMI - device restart using IPMI and automatically entering the PXE mode
    • IPMI (no PXE) - device restart using the IPMI protocol without entering the PXE mode
    • PDU - reset of PDU outlet assigned to the device (for APC and Raritan devices)
  • Send Email Info To Administrator - sending information about the start and end of the installation to the email address of the selected administrator
  • Notification Recipients - selection of e-mail addresses to which information about the start and end of the installation shall be sent
  • Send Email Info To Client - sending information about the start and end of the installation to the email address of the client (owner) of the given server
  • Reinstall Template - selection of the template which will be used for reinstallation, during e.g. service termination
  • Nameserver 1 - the first default name server
  • Nameserver 2 - the second default name server
  • Bootloader - the default boot file

7.png

Once the provisioning server is successfully configured, you will need to define the subnets for the DHCP and TFTP server to work.

Provisioning Subnets

In the next step, go to the ′Provisioning Subnets′ section and configure the appropriate subnets within which the DHCP server will run. Please note that the DHCP server requires at least one subnet for its NIC interface in the system. For example, our remote agent (that is the DHCP server) works on the enp0s8 interface with the IP address 192.168.56.2. Therefore, you must add a subnet in the ′Provisioning Subnets′ section corresponding to this address, e.g. 192.168.56.0/24.

The basic configuration involves adding at least one subnet for your NIC interface. The DHCP server can house an unlimited number of subnets and currently it provides support for IPv4.

8.png

Integration with the IPAM Module

Integration with the IPAM module replaces the basic configuration of the subnet. To enable this integration, use the ‘Enable IPAM Integration’ button. Then, all parent IPv4 subnets (subnetworks without a parent) will be automatically imported into the OS Installation module. Any changes that will be made within a given subnetwork will be applied in both the IP Address Management module and DHCP server configuration.

Jobs

The current status of added tasks can be found in Jobs section. You will find there all the information on the task name, current status and a response sent by the agent.

4.png

Remote Agent Update

If you want to update your remote agent, please move to its summary page and there select the “Update & Synchronization” option in the action menu.

9.png

In the update form, you will find a command that must be executed on the remote agent server. That is how the command looks like:

sudo wget http://EASYDCIM_IP/remote/download/updater.sh -O /opt/updater.sh && bash /opt/updater.sh

The update script will automatically perform the process of updating the remote agent, it will download accurate system packages and again synchronize the remote agent with EasyDCIM.