Revision 1.0
6/2016
Copyright © 2015-16 EMC Corporation.
This software is provided under the Software license provided in the LICENSE file.
The information in this file is provided “as is.” EMC Corporation makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose.
TABLE OF CONTENTS
__INTRODUCTION__ The [Metalnx Web][metalnx_web_github_repo] interface contains a dashboard that provides real-time information about the machines on the grid. For the UI to retrieve all this information, it uses the RMD (Remote Monitoring Daemon) which should be installed on each server in the iRODS grid.
RMD is a lightweight webserver that accepts limited HTTP requests and responds with JSON data. There are a few pre-defined requests to which RMD is programmed to respond to. It runs as a Linux-service with the server name: rmd.
RMD requires Python (version 2.6 or later) be installed on the ICAT and each iRODS resource server. Please, note that iRODS should be setup on the server prior to RMD installation.
Metalnx will run without the RMD package. However, RMD is necessary to allow for complete dashboard and server detail page functions in Metalnx. With this package installed disk, memory, and CPU usage data of each server will be available.
Assumptions
In this installation guide, to fully install Metalnx, we will:
- Show how to install the Metalnx Remote Monitor Daemon (RMD) packages on the ICAT and resource servers. Metalnx uses these packages to monitor and report the active status of the iRODS grid.
Metalnx RMD has been tested on the following Linux distributions as indicated:
- CentOS 7 – all functional testing performed.
- CentOS 6 – verified Metalnx will install and start.
- Ubuntu 14 – verified Metalnx will install and start.
__Metalnx RMD Overview__
Metalnx RMD is a small, lightweight daemon which is installed (via .rpm or .deb package) on each iCAT and resource server in the grid. Metalnx RMD provides, on demand, basic availability information of each server in the iRODS grid which allows Metalnx to report on the overall health of the grid.
![alt text] [2] [2]: IMAGES/Install_figure_2.png "Figure 2 - An Example iRODS Grid with Metalnx Installed"
Metalnx Remote Monitor Daemon (RMD) is installed on the ICAT server and each iRODS resource server. RMD runs as the user iRODS and listens for a request on a port of the customer’s choosing via a configuration file (port 8000 is the default). When a Metalnx user views the dashboard page it issues update requests to the RMD daemon in the grid which will report memory, disk, and iRODS application status via JSON packets back to Metalnx.
The Metalnx application parses the information to build the dashboard and drill down pages. ( Note: Metalnx RMD is not required for the application to work, but without it the Dashboard page will have incomplete information and show each iRODS server without RMD to be in a Warning state.)
__METALNX RMD INSTALLATION__
- Verify the minimum system requirements for RMD are met. This may include installing Python.
- Install the appropriate version of the Metalnx remote monitor daemon (RMD) on the ICAT server and each iRODS resource server.
- Configure RMD on each server if the default configuration does not meet the requirements of your environment.
Figure 3 shows the relationship between iRODS and Metalnx components.
![alt text] [3] [3]: IMAGES/Install_figure_3.png "Figure 3 - Relationship between iRODS/Metalnx components"
Python 2.6 or later version is required to run the RMD service and must be installed on the ICAT and each iRODS Resource server that will run RMD.
For information on how to install Python, refer to: https://www.python.org/
RMD can be built as distribution-specific installation packages using the build instructions.
Install the RMD package on CentOS as root via the command:
# rpm -ivh emc-metalnx-rmd-1.0-1.noarch.rpm
Install the RMD package on a Debian distribution as root via the command:
# dpkg -i emc-metalnx-rmd-1.0-1.deb
By default, the RMD runs on port 8000. This property is editable in the configuration file of the daemon, located at /etc/rmd/rmd.conf:
[daemon]
ip=0.0.0.0
port=8000
[irods]
server_logs_dir=/var/lib/irods/iRODS/server/log
log_lines_to_show=20
The lines in this file correspond as follows:
ip:
The IP address should not be changed. The value 0.0.0.0 is set for the machine to be visible by outside requests.port:
the port on where RMD should listen to requests. This can be changed to meet any firewall or security needs of your environment.server_logs_dir:
the directory where iRODS server logs are kept.log_lines_to_show:
the number of lines to get from the end of the iRODS server log to show in the Metalnx UI on the server details page. This is set initially to the last 20 lines
NOTE: If you change the port number for RMD in the file /etc/rmd/rmd.conf you must ALSO change the port number that Metalnx knows to communicate with RMD at. This must be done after Metalnx is installed. We describe how to do this in the Setup Metalnx section.
__METALNX RMD COMMANDS__
Metalnx RMD responds to the following commands sent to is over the listen port.
/ | Returns all the other commands in a single JSON-like object. For development purposes, this call should be avoided due to its long response time. |
/cpu | CPU related information. |
/cpustat | CPU usage statistics. |
/disk | Disk and partition information of the system. |
/irodslogs | The last pre-defined number of lines of the iRODS server log. This number is set in the RMD configuration file. (see Controlling section above) |
/irodsstatus | Status of the iRODS process. |
/memory | Memory-related data. |
/mounts | Lists all the file systems mounted on the current machine. |
/serverstatus | System-wide status, taking into consideration all the others specific status listed above. |
/version | Returns a JSON-like object containing the version and release numbers for the current instance of RMD. |
Once RMD is installed and configured, a quick test can be done to ensure that RMD is correctly working.
Open a browser window and access: http://<IP_OF_THE_RMD_MACHINE>:<PORT>/disk
It should list all the disk-related information of your machine in JSON format. For example:
http://192.168.1.157:8000/disk
If a firewall is set up on the iRODS server, make sure that the port where RMD listens is opened. On IPTables it can be done by adding the following line to the iptables.conf
file for port 8000 and reloading iptables:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
If the RMD process get stuck, remove the PID file located at /var/run/rmd.pid
and kill the process.