Remote Monitoring Agent (RMA) is an auxiliary application for HostMonitor. It is included
into Advanced Host Monitor package. Enterprise license for Advanced Host Monitor already includes license for 10
installations of the agent. Holders of a Lite, Standard or Professional licenses may buy an additional license for
Remote Monitoring Agent separately.
How to do
HostMonitor can monitor remote networks using Remote Monitoring Agents (RMA). RMA is small application that
accepts requests from HostMonitor, performs test
(or action) and provides information about test result back to HostMonitor.
The following diagram illustrates how our network monitoring software may work in distributed network
Why you may need RMA? Here are just several reasons:
RMA increases security of the network. When you have to run the tests such as CPU Usage test or Performance
Counters tests on a remote system, HostMonitor must be able to log in to that system with administrators
privileges. Instead you may now use an agent installed on that remote system. In this case HostMonitor will not
have to log on to that system at all. HostMonitor needs just one TCP port to communicate with the RMA agent
(by default Passive RMA utilizes TCP port 1055,
Active RMA uses port 5056; however you may set an agent to use any other port).
Remote Monitoring Agent is also a very useful tool when you have to monitor two (or many) separated networks (connected
through Internet). In this case installing just one instance of RMA behind the firewall in network "A" will allow
to monitor entire network "A" using the HostMonitor located in the network "B" with just one open TCP port.
RMA decreases the network traffic. E.g. frequent use of "File Integrity" or "Compare Files" tests in an array of
remote systems may apply significant load on the network. The more and the bigger files you test the more traffic
increase you get. RMA runs locally and sends only the test results to the HostMonitor thus decreasing the amount
of network traffic.
Remote Monitoring Agent simplifies network administration. You no longer need to share drives to perform
tests like Drive Free Space, Folder/File Size, File Availability, Count Files, etc
RMA for Window allows you to execute actions on remote systems. E.g. agent can launch some application or restart
service on a system behind firewall.
Remote Monitoring Agents for Linux, BSD and Solaris allows you to perform tests that HostMonitor cannot perform.
For example HostMonitor cannot monitor processes that are running on Linux systems. RMA can do that.
- All traffic between Remote Monitoring Agent and HostMonitor is encrypted.
- It is possible to customize the list of enabled tests for each of the agents (e.g. living only Count Files and Drive Free Space tests only).
- You can restrict incoming TCP connections with the list of acceptable addresses.
- With RMA Manager you may configure, restart and even upgrade agent(s) remotely.
Since the version 6.00 HostMonitor allows you to setup primary and backup agents. Using this feature,
HostMonitor is able to balance load between agents and use the backup agent when primary one does not respond.
Yes, RMA is pretty stable software however system may not respond due to some hardware or network error.
See "Agent Connection Parameters" for details.
Now Remote Monitoring Agents available for Windows, FreeBSD, Linux, NetBSD, OpenBSD and Solaris platforms.
Information about RMA for UNIX available here.
Passive RMA versus Active RMA
Passive RMA opens specified TCP port for listening and waits for connection requests from HostMonitor and
RMA Manager, then RMA performs test (or action) and provides information about test result back to HostMonitor.
Active RMA - Remote Monitoring Agent that is not waiting for TCP connection from HostMonitor like regular RMA
(now it`s called as Passive RMA). Active RMA itself establishes connection with HostMonitor and RMA Manager.
This allows you to install RMA inside private network protected by firewall without necessity to open any TCP
port (Passive RMA requires 1 open TCP port). Also Active RMA allows you to monitor system that does not have
fixed IP address, e.g. system that is connecting to the network using temporary dial-up connection.
Several procedures help to monitor networks over unreliable connections:
- Active RMA may store test results when network connection unexpectedly brakes off, it will try to reconnect to HostMonitor and send test results upon connection;
- HostMonitor uses more flexible schedule for the tests that should be performed by Active RMA, e.g. if test has to be performed immediately but Active RMA is not connected while it was connected several minutes ago, HostMonitor may wait for another connection up to 4 min before assigning Unknown status to the tests. Note: if you select the test item and click Refresh button, HostMonitor will not wait for connection, it will set Unknown status right away;
- For each active agent you may setup Backup Active RMA. Using this feature, HostMonitor is able to balance load between agents and use the backup agent when the primary one cannot establish communication channel.
Active RMA for Windows can be started as a regular application or as a Win32 service and perform the same set of
tests and actions supported by Passive RMA.
Active RMA for UNIX is not available yet.
How to install RMA
To install RMA run installation program for Advanced Host Monitor package (host-mon.exe).
At the stage when installation wizard offers you to chose an installation package, you should select "Custom Install".
Then in the list of available components check the box in front of the "RMA for Windows". If you want to install only
"RMA for Windows" then uncheck everything except "RMA for Windows".
If you need to install RMA on an array of systems, then the easiest way is to:
- Install it on one system using installation program (see the instructions in previous paragraph)
- Configure an agent (setup timeout, password, list of enabled tests, enable or disable remote management, etc)
- Then simply copy preconfigured agent to all systems. You need to copy just 3 files:
rma_cfg.exe, rma.ini, rma.exe (if you need Passive RMA) or rma_active.exe (if you need Active RMA)
- Note: you should assign unique name for each Active RMA. If you assign the same name for several agents,
HostMonitor will accept connection from 1st started agent and reject connections from other agents with the same name
Note 1: It is also possible (however you may never need it) to run several instances of RMA on the same system.
To do this you have to install several copies of RMA into different folders on the hard drive.
Each copy of Passive RMA should then be set to use different TCP port. You should assign unique name for each
Note 2: RmaInstaller utility allows you to install Remote Monitoring Agent as Win32 service on remote systems.
The utility included into Advanced Host Monitor package; after installation you may find this utility in
| How to configure Passive RMA
|| Link: How to configure Active RMA|
To configure an agent you may use rma_cfg.exe program (after installation it will be located in the same directory where
an agent is installed) or you may start an agent and click on "Settings" button on the tool bar.
This button launches the same configuration utility which pops up as a new window.
The lower part of the configuration window mostly contains information about an agent. Those fields
(from the top to the bottom of the window) are joined into three groups: Agent information, Statistics and Agent status.
You are not able to change information shown in grey fields. They show data that was predefined by a software developer.
- Agent: an internal name of an agent
- Version: the version number of the agent.
- Platform: OS platform that this agent is designed for.
- Developer: the company that created RMA software.
- Comment: this is the only field available for editing in this section. Here you may specify a comment (actually
you may type any text here, it could be a simple recognizable name or an identifier for this agent).
This helps to identify agents easier.
HostMonitor and RMA Manager will display the content of these fields when they work with remote agents.
- Active: this is the number of requests that this agent is currently processing.
- Performed: the number of requests processed since last time the agent was started.
- Rejected: the number of requests that have been rejected by the agent since it was started.
A rejection may be a result of a connection with invalid password or from an IP address that is not allowed.
These three fields show the status of an agent as an application or Win32 service (you may start an agent in either
of these two modes). Also this section shows you the state of currently edited agent configuration i.e.: are the
changes for the current configuration already saved or not. Each field is followed by a corresponding control button:
- Settings: initially, or after you just have started configuration utility, this field says "Applied".
This means that the current settings of RMA were not changed yet. As soon as you start typing in any of the
fields available for the user, caption changes to "Modifications are not saved" as a reminder that the current
changes for the configuration are not saved and thus are not in effect.
Only after you click the button "Apply" the changes will be saved. Note that after you have applied changes the
caption returns to "Applied".
- Application status: says either "Active" when Remote Monitoring Agent is running as a regular application or "Not Active"
when RMA is not running. The button beside this field is correspondingly captioned saying "Activate" when RMA
is not running, so it will start RMA if you press it. Caption "Deactivate" on the button means that RMA is
currently running as a regular application and if you press the button it will be terminated.
Note that the configuration utility is a separate application and it may run independently, even when Remote Monitoring Agent is not
- Service status:
On Windows NT* agent can be installed as a Win32 service. This field and the button display and control the status of RMA as a Win32 service.
"Not installed" means RMA is not installed as a Win32
service. "Installed" means that RMA is already installed as a Win32 service. The button beside the field changes
its` caption correspondingly - "Uninstall" when RMA is installed as a Win32 service or "Install" when its not.
RMA in a Win32 service mode is loaded automatically at a system startup.
*Here "Windows NT" means system based on NT technology, including Microsoft Windows NT 4.0, Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008.
Note: If you are using local system account to start RMA service, RMA will be able to monitor local system (system where RMA is running).
However local system account does not have necessary rights to monitor remote Windows systems. If you want to use single agent to monitor entire local network,
please provide account with necessary rights using standard Windows "Services" applet. Some test methods require administrator account (CPU Usage, Process, Performance Counter).
- Service state: this field is empty when Win32 service is not installed. After the servise was installed
the following captions will tell you its status: "STOPPED" means the service is installed but not started.
"STARTED" is displayed when the service is running. The button "Start/Stop" allows you to start or stop the
specifies the TCP port number which RMA utilizes to listen for incoming connections. Default setting is #1055.
the maximum amount of time (in seconds) that agent will keep waiting for the complete request packet from HostMonitor
(after initial TCP connection established) before dropping the connection.
minimum six character length password. Using of an empty password is not permitted. The password is required for
every communication session between RMA and HostMonitor or RMA and RMA Manager. All traffic between RMA and
HostMonitor or RMA and RMA Manager is encrypted and the password itself is never transmitted through the network
- Accept connections from any IP address
enabling this option will allow RMA to accept control commands from any IP address (as long as the incoming
connection provides correct password)
- Accept connections from following addresses
specifies the list of IP addresses. After enabling this option RMA will accept remote connections only from the
addresses in this list (password is required as always).
Usually you have to add just one address to this list, namely the one for the system where HostMonitor is running.
To add an address to the list press Insert key, to remove an address from the list press Ctrl+Del, to edit item press
Enter or double-click it.
- Enable remote management from address
this option sets the IP address from which it is allowed to control and manage Remote Monitoring Agent. Using RMA Manager installed on
the system with that IP address you will be able to change agent's settings remotely, also you will be able to
restart and terminate an agent.
Note: Instead of single IP address you may specify a list and/or a range of IP addresses.
IP addresses in the list should be separated by comma. Dash is used to define a range of
addresses. Example: "127.0.0.1, 192.168.13.10 - 192.168.13.99, 184.108.40.206".
- Enable remote updates from address
this option allows remote updates of the RMA code (e.g. when a new version is available) from the IP address being
You may provide single IP address or you may specify a list and/or a range of IP addresses.
IP addresses in the list should be separated by comma. Dash is used to define a range of
addresses. Example: "127.0.0.1, 192.168.13.10 - 192.168.13.99, 220.127.116.11".
To upgrade an array of remote agents you may use RMA Manager.
- Enable following tests
specifies the list of tests methods allowed for execution by this RMA. To enable a test mark the corresponding check
box, to disable a test unmark the box near it.
- Enable following actions
specifies the list of actions allowed for execution by the agent. To enable a action mark the corresponding check
box, to disable a action unmark the box near it.
- Successful audit log to
here you may specify a log file where agent will store information about successfully accepted connections.
This log has no use when everything works well (it then just takes space on the hard drive), but you may found it
really helpful when a sophisticated network problem has to be fixed. If you specify just the name of the file
(without a full path), an agent will store a log in the same directory where it was started from.
- Failure audit log to
you may specify another log file where an agent will store information about rejected requests. E.g.: connections
from an IP addresses that are not allowed or connections with invalid password, etc. Log file is a simple text file
that contains date of the event, remote IP address from which an attempt of connection has occurred and information
about the error. If you specify just the file name (without path), an agent will store it in the directory where it
was started from.
Following options define how agent should access the net in order to perform "URL" tests.
- USE REGISTRY CONFIGURATION
Agent retrieves the proxy or direct configuration from the registry.
- DIRECT TO NET
Agent resolves all host names locally.
- VIA NAMED PROXY
Agent passes requests to the proxy unless a proxy bypass list is supplied and the name to be resolved bypasses the proxy.
- PRECONFIG, PREVENT USING JAVA/SCRIPT/INS
Agent retrieves the proxy or direct configuration from the registry and prevents the use of a startup JScript or Internet Setup (INS) file.
Do not check Internet connection
Normally RMA checks if computer is connected to Internet before performing "URL" test (to avoid appearance of
Dial-Up dialog). With this option enabled RMA will not perform such check.
Following settings are used when access method is set to "VIA NAMED PROXY"
- Proxy server
address of your proxy server
- Proxy port
port number of the proxy server
- Use proxy authentication
if your proxy server requires authentication you may specify the username and password in
- Proxy bypass list
list of addresses that don't need to be accessed through your proxy server. This list may include
IP addresses, host names, or names of computers from your intranet. Also, wildcards may be used as well to match
domains, host names or addresses. For example: www.*.com; 128.*; *man*; and so on. For local addresses use the
"<local>" macro. Use semicolons ";" to separate entries.
Performance Counter test related options
Windows implementation of performance counters has bugs. E.g., Windows 2000 (Professional, Server, and Advanced Server
editions) can produce memory leak in PDH.DLL when user (application) querying performance counter that does not exist.
This bug fixed in SP2. Also PDH.DLL does not work correctly with multithread applications.
That's why in RMA we have implemented several different methods to work with PDH.DLL:
- MultiThread mode
RMA works almost according to Microsoft documentation with some workaround to avoid most likely problems. Agent loads pdh.dll at once and uses it all the time. This method fast because RMA can start several tests simultaneously. If everything will work correctly on your system, use this method.
- OneByOne mode
Using this method agent will start Performance Counter tests one by one. This method is slow but using this method you may avoid problems due to a buggy pdh.dll
- Smart mode
With this method RMA will try to detect when pdh.dll has to be reloaded...
Use external (perfobj.exe) utility to perform the tests. This is fast and most reliable method.
To configure huge arrays of remote agents installed in different networks you may use
RMA Manager. It allows you to change settings for hundreds of agents installed on remote systems at one time and
from one comfortable location.
How to use
O.k., now when you have your agents installed in different networks, how to use them?
HostMonitor since version 4.0 supports a list of remote agents and can perform tests not
only by itself but also may send a request to the agent which will then execute the test. Every test in HostMonitor
has now an additional property: "Test by". By default it has the value "HostMonitor"; it means that the test will be
executed by HostMonitor. Alternatively you may choose an agent from drop down list and the test will be performed by
How to check status of the agent
When you use single agent to perform various tests, you may want to setup Master test to
check agent status. In such case HostMonitor may send single alert informing you about disconnected agent and hold dependant test
items (so you will receive single alert instead of hundred warnings for all tests performed by this agent).
What test can you use as Master test?
- Passive RMA: It's pretty easy to check Passive RMA status when you do not use Backup RMA.
You may use TCP test to check is RMA receives connections on specified
TCP port or use Ping test performed by the agent to check localhost (127.0.0.1). Such Ping test will always return "Host is alive"
status when successfully authenticated connection to the agent can be established.
If there is backup agent in use, you may setup Ping test performed by Passive RMA using rma itself
string as target host name. In such case HostMonitor will check agent status without using backup agent even if such backup agent
was specified for selected RMA
- Active RMA: Things a little more tricky when you need to check Active RMA status. Yes, you may setup the same "Ping localhost" test
to check agent status. However this may lead to some delay in reaction as HostMonitor will not perform test if agent was connected but
lost connection just a moment ago. HostMonitor may wait up to several minutes for new connection before changing test status to
"Unknown". Dependant test items will be delayed as well so such delay is not a big problem, you will not receive a lot of alerts.
However if for some reason you need to receive alert immediately, there is solution: setup Ping test using Active RMA and type
rma itself string instead of localhost or target host name. In such case HostMonitor will display agent
status immediately. HostMonitor will not use backup agent (if any) when specified agent is not connected; also HostMonitor will
not wait for agent re-connection.
Windows 95, 98, ME, NT Workstation, Windows 2000 Workstation and Windows XP has a serious limitation:
maximum length of the queue for pending TCP connections is limited to 5 items.
This limitation creates problems when you want to perform lots of tests by a single
remote agent (e.g. monitoring many systems by a single agent that is installed on
the system in the remote network).
To avoid possible rejections of requests caused by the queue overflow you should:
- Install a Remote Monitoring Agent on Windows Server edition.
- Or you may set parameter "Do not start more then [N] tests per second" to 5
or less. This option is located on Behavior
page in the HostMonitors` options dialog.
Minimum system requirements
- Windows 2000 Server/Workstation
Windows XP Professional
Windows Vista Business
Windows 7 Professional
Windows Server 2003*
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Service Pack 4|
Service Pack 3
Service Pack 2
Service Pack 1
Service Pack 2
Service Pack 2
Service Pack 1
- Internet Explorer 6+
- TCP/IP connection (LAN or Dial-up)
- 5 MB of free disk space
Windows 2012 / Windows 8:
RMA agent can run on Windows 8 Pro and Windows Server 2012 however we do not recommend these systems due to some problems in Windows API related to Event Logs.
- RMA is 32-bit application, however it can be used on Windows x64 Edition running on x86-64 (AMD64) systems (not on Itanuim/IA-64).
E.g. you can start RMA on Windows XP Professional x64 Edition or Windows Server 2003 x64 Edition.
- If you are using Windows x64 Edition and you want to setup some ODBC test items, you should setup ODBC datasources using 32-bit
ODBC Data Source Administrator (e.g. C:\WINDOWS\SysWOW64\odbcad32.exe).
How much does it cost?
When you purchase an Advanced Host Monitor ENTERPRISE edition you will get the license for
10 installations of the agent at no cost.
Otherwise you may buy licenses in sets of 10 ($250 per 10 licenses) or in sets of 100 licenses ($900 per one set of 100).
You may order Remote Monitoring Agent using credit card, Switch and Solo debit cards, check/money order or wire transfer.
If you are concerned about submitting your order and/or credit card information online, you may order the license
via phone, fax or postal mail.