Tests: General Information


HostMonitor is a network-monitoring tool that allows you to keep a close eye on what is going on the network. Monitoring is done by performing periodic checks of the network resources that are to be watched. These checks, in the HostMonitor terminology, are called tests. It is the administrator's responsibility to identify exactly what needs to be checked, and create a set of tests that will be doing the job.

In order to be able to create a monitoring environment that suits your needs, does what you meant it to do and reacts to events adequately and predictably, you must have a good enough understand of:

  • Each test has a set of properties that can be divided into statical and dynamical properties. HostMonitor doesn't change statical properties; the user has to set them in the Test Properties dialog (e.g. Test Name, Comment, Related URL, list of Master tests, Test Interval, Schedule, Alert Profile, etc). When performing tests HostMonitor changes dynamical properties, such as: Status, Reply, Last Test Time, Recurrences, and all kinds of statistical information. User can't directly change dynamical properties, only can reset statistics for specified tests using a 'Reset' button in a Toolbar or menu item Test->Reset. Testing of specified tests can also be manually performed at any time (not waiting for the time interval) using a 'Refresh' button in a Toolbar or menu item Test->Refresh (or just select a set of tests and press 'Space' button). User can set a list of the test's properties to display by using Columns page in the Options dialog.

  • HostMonitor performs tests in intervals that are set individually for every test, or on scheduled time (day of the week, or month, see Schedule). Depending on the test result, HostMonitor assigns one of the available statuses to it ('Host is alive', 'No answer', 'Unknown', 'Unknown host', 'Ok', 'Bad', 'Bad contents'; there are also special statuses available: 'Not tested', 'Checking..', 'Disabled', 'Wait for Master', 'Out of schedule', 'Paused').

  • After finishing a test HostMonitor performs next steps:
    - Checks "Optional status processing" options ("Reverse alert", "Use Warning status", "Use Normal status") and sets user defined status when necessary;
    - Updates statistics (dynamical properties), such as Total time, Alive time, Dead time, Total tests, Passed tests, Failed tests, Average reply, etc;
    - If necessary HostMonitor adds information into a log file. You can find information about different log file types in Log&Reports section of this documentation;
    - If necessary the program starts actions defined in the action profile.

Note: To operate with a test or a group of tests user can use Toolbar, popup menu or a Test menu in a main window of the HostMonitor. List of available actions: Add test, Edit test(s), Remove test(s), Copy test(s), Enable/Disable test(s), Pause/Resume test(s), Refresh test(s) status, Reset statistics, Show statistics, View private log, Trace, Telnet. For more information about user interface, please, refer to TestList & Windows section of this documentation.

Links


Links allow you to put the same test item(s) into several different folders. Unlike "copy" operation that creates independent copy of the test item, "link" operation does not create another test item - it creates link (image) of the test item. What is the difference?
- Copy: If you need to create test item similar to existing one and then change some parameters of the new item (e.g. you need similar test items to check set of services on different servers), use Copy operation. Copy will create new test item(s) with the same properties, then you will be able to modify each item independently; HostMonitor will perform separate check for each item.
- Link: If you want to see exactly the same test item(s) in several different folders, use Link operation. If you select original test or any of its links and modify test settings, your changes will automatically take effect for all links of the test.

Working with links
"Link" function available through the main menu Test and from the context popup menu (to access the popup menu select the test(s) and click right mouse button). Also if you select test item that already has some links, you will see "Links info" menu item. Using this menu item you may access "Links list" dialog window, it shows the information about all folders which contain links to selected test item. You may remove some links or you may remove test itself (including all links to the test).
If test changes its status, HostMonitor will reflect status change in all folders which contain links to the item. The same is true for any test modifications. If you select any of the links and then disable, enable, pause or resume the item, acknowledge test status or change some parameters of the test, you will see the same effect in all folders with linked test item.
However if you select some test/link items and click "Remove" button, HostMonitor will remove only selected items. E.g. if you select 2 of 3 links to the same test item and click Remove button, HostMonitor will remove 2 selected links but keep 3rd one. If you want to remove all links to the test, you should select all links or use "Links list" dialog.

Parent folder
If you take a look at the test list, original test item and all of its links look exactly the same (unless you are using different color palettes for different folders). The reports will show tests and links, RCC and Web Service will display links as well. So, there is no difference which item is original and which item just a link? Almost. There is only one function that makes the difference - actions. If you are using folder related macro variables (e.g. %FCommentLine1% or %FullPath%) as parameter of some actions, HostMonitor will use parameters of the parent folder - original folder where test was created.
If you create a link to the test in another folder, the parent folder is still the same. If you then move a link to a different folder, the parent is still the same. However if you move original item to a different folder, HostMonitor will change the parent folder of the test. Also if you remove the original item while keeping the link, HostMonitor will reassign the parent folder to the folder where link is located. If your test items have many links and you are not sure which one is original, use "Links list" dialog window, it will show the parent folder and the list of the links.

Links and "Home folder" option
The "Home folder" option allows you to limit access to the folders on per-account basis. What happens when operator does not have access to the entire test list but has access to some low-level folder and this folder contains some links while other links to the same test located above allowed home folder? Operator will be able to work with this test item and modifications will have effect in all linked folders (of course operator should have necessary rights to perform operation, e.g. "configure test/folder" permission).
Operator may remove only links located within its home folder; it cannot remove links/tests located outside of the scope (even using "Links list" dialog window).

Other notes:

  1. Linked items show slightly different status icons, so you know when your modifications will have effect in several folders.
  2. Test Properties dialog shows yellow warning icon when you are editing linked test item. You may click on the icon to bring up "Links list" dialog.
  3. Estimated Load window shows information about links as well (just for informational purpose - links create minimum increase in system load).
  4. If you want to remove entire folder, HostMonitor will ask for confirmation when the folder contains subfolders or test items. If the folder contains links only, it will be removed without confirmation.
  5. When you export tests using "export current folder" or "export current folder and subfolders" option, HostMonitor exports tests located in the folder then it exports links (items whose parent folder located outside of the scope but one of the test links located within scope). This allows you to find and modify or remove links easily.
  6. Import function may create links as well (use "LinkedTo=<full_folder_name>" parameter)
 
Test Methods


A great variety of network services and resources can be watched over by the program. The following is a list of test methods available in HostMonitor:




Tests: Agent List


HostMonitor can perform tests by itself or it can use Remote Monitoring Agent for this purpose. RMA is a small application that accepts requests from HostMonitor, performs test and provides information about test result back to HostMonitor.
When you setup the properties of a test in Test Properties dialog you may select an agent from drop down list or click on a button (to the right of the field) to manage agent list.


How to do:


How to add new agent to the list

To add a record for a (new) agent click on "New" button or press Insert key in the list of agents. When the dialog "Agent Connection Parameters" appears choose type of the agent (passive RMA or active RMA) and set the following parameters for the agent:

Passive RMA


Passive RMA is small application that accepts requests from HostMonitor, performs test (or action) and provides information about test result back to HostMonitor.
  • Agent address:
    provide the host name or an IP address of the system where RMA is installed
  • Item name:
    name of the agent (this name will be displayed in agent's list, and will be used by HostMonitor for agent identification). By default an address of an agent will be used as name for it but you may specify any other name that you like
  • Port:
    TCP port that will be used for communication between HostMonitor and the agent. Here you should specify the same port that you have already specified when that agent was installed and configured on a remote system (by default agent uses port #1055)
  • Timeout:
    communication timeout in seconds. A maximum amount of time that HostMonitor will wait for an answer from the agent. Please note: this timeout should be big enough to allow an agent to perform a test before sending an answer to HostMonitor. When, for example, you are launching an external test and an external program needs 15 seconds to perform this test then the timeout should be set to 15 seconds plus an amount of time that is necessary for data exchange between HostMonitor and an agent.
  • Password:
    here you should provide the same password that you have specified when an agent was installed and configured on a remote system.

After you have finished entering the above information click "Test/Get info" button to check the settings of an agent or click "Ok" button to check the settings and close dialog. HostMonitor will try to establish connection with an agent and get information about agent: platform, version, comment, etc.
If connection with an agent was established, HostMonitor updates all agent information and sets status of the agent to "operable". If HostMonitor was not able to get proper information from an agent, it sets its` status to "no answer" (if no answer from agent received) or "bad answer" (if some error code was received from an agent, e.g. wrong password).

Active RMA


Active RMA - Remote Monitoring Agent that is not waiting for TCP connection from HostMonitor like 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.
There are just 2 obligatory parameters
  • Name
    unique name of the agent. You should not assign the same name for several agents. If you do so, HostMonitor will accept connection from 1st started agent and reject connection from other agents with the same name
  • Password
    minimum six character length password. An empty password using 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 without encryption.
Note: you should use exactly the same name and password that were used when you setup Active RMA on remote system using rma_cfg utility.

Note: Options located on "Active RMA Server" page in the Options dialog allow you to specify TCP port that will be utilized by HostMonitor to listen for incoming connections from Active RMA agents.


Backup agent
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.
When you have installed second agent you may choose one of two different "Load balancing" options:

  • Backup only
    In this case, HostMonitor will request the main agent to perform the tests and will switch to backup agent only in the case of the primary agent not responding.
  • 50/50
    With this option selected, HostMonitor will balance requests for service between the agents. Even if you specify a single primary agent for all your tests, some tests will be performed by primary agent and other by backup RMA. If the primary or the backup agent does not respond, tests will be performed by another (paired) RMA.
Note 1: 

"Primary agent" - the agent that is specified for the test execution. As you may specify different agents for different test items, the same agent can be a "primary" and "backup", depending on the situation. For example, you may use AgentA to perform set of WMI tests and use AgentB to perform SNMP tests. In case of an emergency AgentB may execute WMI tests as well (AgentB is backup agent for AgentA). AgentA may perform SNMP tests in the case of AgentB failing (AgentA is backup agent for AgentB).

Note 2: 

Options on Misc page in the Options dialog allow the behaviour of the tests when primary agent does not respond to be specified. "If backup agent is specified and connection to primary RMA failed" parameter allows you to choose one of the two options:

  • Set "Unknown" status, log the error, then repeat test using backup agent
  • Request backup agent without reporting error


How to edit connection parameters for the agent

To change connection parameters for an agent, select it from the list and click "Params" button (or just double-click it). "Agent Connection Parameters" dialog will pop up, there you may setup connection parameters (agent address, port, timeout, password, etc) like it was already described in previous abstract ("How to add new agent to the list").


How to obtain information about agent(s)

When you create a new agent record in the list, HostMonitor tries to connect to a specified agent and gets information from it. But you can refresh/reload this information at any time. To retrieve information about single agent, select an agent and click "Get Info" button. To retrieve information about all agents from the list, just click "Get Info (All)" button. HostMonitor will then try to connect to each agent and gets the following information:

  • Agent: an internal name of an agent;
  • Platform: OS platform that this agent is designed for;
  • Version: the version number of the agent;
  • Developer: the company that created RMA software;
  • Comment: the content of a comment field that you or system administrator had provided when a remote agent was installed and configured.

If a connection with agent was established, HostMonitor updates all information and sets the status of an agent to "operable". If HostMonitor was not able to get information from an agent, it sets the status to "no answer" (if no answer from an agent was received) or "bad answer" (if some error code was received from an agent, e.g. wrong password).


RMA Manager
To manage an array of Remote Monitoring Agents you may use RMA Manager utility. It allows you to change settings for hundreds of agents that are installed on remote systems at one time and from one location. Also RMA Manager allows you to reload or terminate agents, force agents to reread settings from their ini files and even upgrade agent's code remotely.
Both RMA Manager and HostMonitor are using the same list of Remote Monitor Agents.

Tests: Common Properties


Test particulars are defined in the Test Properties dialog:

Most properties are common across all test methods. However, each method has a set of parameters that are specific to the test type. Let's have a look at the common properties first:

  • Test By
    Test can be performed by HostMonitor itself (by default) or by Remote Monitoring Agent. You may select an agent from drop down list or click on a button (to the right of the field) to manage agent list.

  • Test Name
    The name of the test; HostMonitor auto populates this field with a suggested name based on the type and other test parameters; you can change that name to whatever name you want.

  • Comment
    Any comments those make sense to you. You can specify one-line comment directly in the Test Properties dialog or press button to bring-up popup dialog for entering multi-line comments. In the status bar, in reports, and in the Test Detail Area HostMonitor will display only 1st comment line. However using macro variables (%TaskComment%, %CommentLine1%, %CommentLine2%, etc) you can access whole comment or any of its lines.

  • Related URL
    For each test, a related URL can be specified. By adding this property to the list of visible columns or to a report, you will make the related URLs appear in the test list view or report sheet. In HTML reports, URLs appear as hyperlinks. In the list view, tests with a related URL will have a popup menu item that launches the associated program (typically, your default Internet browser).

  • Enabled/Disabled
    Enables or disables test execution.

  • Schedule
    Specifies when to perform the test. You can choose between regular and irregular schedules.
    A regular schedule assumes the test will be fired off at fixed time intervals, for instance, every 10 minutes. In addition, a Schedule can be associated with a test to give you more control on your monitoring activities. For example, if you want to test your proxy server only from Monday to Friday, select the "Monday-Friday, 24 hours" schedule. You may select an existing schedule from a drop-down list or create any number of your own schedules. If you do not select a schedule, HostMonitor will always check the host.
    With an irregular schedule, you may select one of the following options:
    • Start test once a day
    • Start test once a week
    • Start test once a month
    This allows you to perform the test on a given day of week or month, at a given time (e.g. every Monday at 9:00 am; or on the 15th of every month at 3:00pm).
    Note: Irregular schedule mode "Start test once a month" allows you to specify "Last day" option. In such case the test will be performed on the last day of each month.

  • Alert profile
    Alerts are a highly flexible mechanism that allows you to implement different behaviors for different types of events and conditions. Choose one of the existing Alert Profiles or create a new one, designed specifically to suit your needs.
    You can design an alert profile, using different alert methods, such as a visual and sound warning; send an E-mail message to a mailbox, pager or mobile phone; execute an external program, restart service, reboot local or remote computer, dial-up to the network, send data to TCP/UDP port, execute SQL Query, and much more. For more information, please, refer to Actions section of this documentation.
    If you don't select an alert profile, HostMonitor will only write down a record to the log file (if the logging is enabled), and no other action is taken even if the status of the host changes.


    Logging options

  • Use common log
    If the "Use common log" option is selected, HostMonitors records test data in a single log file (or database) shared by all tests. Common log settings located on Log Settings page in the Options dialog.
    Choose one of the following options to specify when information should be recorded:
    • Default - the default logging mode specified in the Options dialog will be used (note: you may use different settings for Primary and Backup logs);
    • Brief - record information whenever status of the test changes;
    • Full - record all test results, regardless of whether their status had changed or not;
    • Reply - record information into log every time the status or reply value of the test changes.
    For more information about different logging options, please, refer to Log&Reports section of this documentation.

  • Use private log
    Additionally, for each test you can define its own, dedicated log file by checking the "Use private log" option. The type of a private log is determined based on the file extension: HTML for .htm*, DBF for .dbf, plain text for any other extension.
    Private logs can be configured to work in one of the following modes:
    • Default - the Primary log settings defined in the Options dialog are used;
    • Brief - record information whenever status of the test changes;
    • Full - record all test results, regardless of whether their status had changed or not;
    • Reply - record information into log every time the status or reply value of the test changes.
    If a private log is specified, the popup menu for that test will contain the item, "View private log". For more information about different logging options, please, refer to Log&Reports section of this documentation.

  • Exclude from reports
    These check boxes allow the user to exclude the test information from reports. For more information about the report customization, please, refer to Report Manager section of this documentation.


    Master/Dependent test settings

  • This test depends on another test(s)
    For each test, you can define a list of other tests it depends on, or Master tests. For each Master test you can choose the condition to perform the dependent test based on the status of the Master test:
      - "Alive";
      - "Alive" or "Unknown";
      - "Dead";
      - "Dead" or "Unknown".
    As an example, consider a network configuration where the accessibility of the company's several web servers depends on the state of a single router. When the router is down, there is probably little sense in trying to do the dozens of tests designed to collect information on the web servers.
    That was, of course, a very simplified example. With this feature, you can implement quite sophisticated dependencies involving a number of master tests which, in turn, depend on other tests' results. For more information on dependencies, please, see the following options: "Syncronize counters", "Syncronize status & alerts", "Consider status of the master test obsolete after N seconds" (Options dialog).
    Note: Using Remote Control Console to edit test properties, it is possible to see 'ID <number>' instead of the name of the master test. This means that the master test is located in a folder to which you do not have access. If you need information about this master test, it can be provided by an operator with a higher level of rights.

  • This test depends on expression
    Instead of making test to be dependent on a list of Master tests you can define a condition to perform the test using logical expression.
    This mode is more complicated than a standard list of Master tests but it is very flexible. Just several simple examples:
    • with expression ('%::Ping Router::SimpleStatus%'=="UP") and ('%::Ping Router::Reply%'<'800 ms') HostMonitor performs a test when the test named "Ping Router" has a good status and the reply time for the router is below 800 ms;
    • use expression like ('%::TestA::SimpleStatus%'=='UP') or ('%::TestB::SimpleStatus%'=='UP') to perform a test when either TestA or TestB has "good" status.
    Note: There is special button in Test Properties dialog that allows you to bring up "Expression editor" window for convenient expression editing.

    OtherwiseStatus
    Sometimes HostMonitor may fail to parse logical expressions. For example when a variable has no value due to the failure to perform some other tests. In this case HostMonitor will not perform the dependant test. Instead it will set a special status for the current dependant test. The same happens when a logical expression returns "false" value (this means that a condition was not met). You may define this status in the "OtherwiseStatus" property of the test. You can provide the status name ('Host is alive', 'No answer', 'Unknown', 'Unknown host', 'Ok', 'Bad', or 'Bad contents') or specify a macro variable that describes the status of another test (e.g. %::Ping Router::Status%).
    For more information on dependencies, see the following options: "Syncronize counters", "Syncronize status & alerts", "Consider status of the master test obsolete after N seconds" (Options dialog).

    Note: HostMonitor stores master-dependant test expressions using unique ID of each test item. When you setup new expression HostMonitor checks for master tests existence, also it allows you to select specific test item in case several test items have the same name. As result you may rename test items without necessity to modify master-dependant expressions.
    Note: If you import test items from import text file manually and there is no "DpExprID" parameter specified or there are incorrect test IDs specified in this parameter while "DpExpression" parameter contains non-unique test names, HostMonitor will display dialog that allows you to select specific master test items. If import procedure works without human interaction (e.g. procedure was initiated by "Execute HM Script" action), the same problem (invalid or not specified IDs and non-unique test name) will be resolved by HostMonitor in different way - HostMonitor will use 1st matched test.

  • Synchronize counters
    This option only applies to tests that have one or more master tests. When the option is turned off, and some test is not being launched because its launch condition has not been met, HostMonitors simply marks such a test with the "Wait for Master" status and does not change any counters. If, however, the option is turned on, HostMonitor will update statistics information accordingly to the Master test status. Thus, if a router on which other tests depend has been tested to a "No answer" status, HostMonitor will increment respective counters (like "Dead time", "Failed tests", etc) for router and for all dependent tests with the "Synchronize counters" option on.

  • Synchronize status & alerts
    This option is applicable only if "Synchronize counters" is also selected. When the option is turned on, besides synchronizing counters, the dependent test receives the status of the master test, which in turn will start action dispatching based on the status propagated from the master test.

    Example: On your corporate network you have 10 web servers and 1 router that is critical to the entire network. A router Ping test is set up to page the administrator if the router does not respond. So when the router goes down, and the "Synchronize status&alerts" option is turned off, HostMonitor sends a message to the administrator's pager and suspends all dependent tests. If "Synchronize status&alerts" is on, in addition to the router problem notification, actions defined on the dependent tests will be fired off as well.

  • Dependencies of this test
    This is a read-only list for information purpose. It displays tests that depend on the current test.


    Optional status processing:

    When HostMonitor performs checks it may assign one of the following statuses as a result of the test probe:
    - Ok, Host is alive -- "good" statuses;
    - Bad, No answer, Bad contents -- "bad" statuses
    Also HostMonitor may use "Unknown" and "Unknown host" statuses when it is impossible to perform the check.

    You may specify for each test item additional rules that tell HostMonitor how to process the result. HostMonitor may parse specified logical expressions and set "Warning" or "Normal" status when appropriate expression is True.
    Note: HostMonitor checks logical expressions after test check is done and "reverse alert" option is processed.

    The following table separates statuses into logical groups
    "Good" statuses "Bad" statuses "Unknown" statuses "Inactive" statuses* User-defined statuses
    Host is alive
    Ok
    No answer
    Bad
    Bad contents
    Unknown**
    Unknown host**
    Disabled
    Wait for master
    Out of schedule
    Paused
    Warning**
    Normal
    * "Inactive" statuses indicate that test was not performed for some reason
    ** "Warning" and "Unknown" statuses might be processed as "bad" statuses depending on "Treat Unknown status as Bad" and "Treat Warning status as Bad" option
    *** When HostMonitor performs the test, it shows temporary status "Checking"

  • Reverse alert
    When this option is selected, HostMonitor regards test results that are normally considered benign, as abnormal ones, and vice versa.
    This can be useful in some situations. For example, CPU Usage test returns an "Ok" status if the processor load ratio is below a predefined value. With the "Reverse alert" option turned on, the test will work the other way around, so the administrator will be alerted when the processor load is below a predefined value.

    Here is how the conversion works for different status values:
    Original status   Reverse status  
    No answerOk
    BadOk
    Bad contents Ok
    Host is alive Bad
    Ok Bad
    Other status values are not affected.

  • Treat Unknown status as Bad
    With this option enabled, if test results cannot be obtained, actions are triggered by HostMonitor the same way as if the test returned a "Bad" status. Details available below
    The option is not applicable to some of the test types. Please refer to the table below for the meaning of "Unknown" status for different test types:
    Test Option is applicable* "Unknown" status condition
    Ping Yes Host name cannot be resolved into IP address
    Trace Yes Host name cannot be resolved into IP address
    URL No  
    HTTP Yes Host name cannot be resolved into IP address
    TCP Yes Host name cannot be resolved into IP address
    UDP Yes Host name cannot be resolved into IP address
    NTP Yes Host name cannot be resolved into IP address
    SMTP Yes Host name cannot be resolved into IP address
    POP3 Yes Host name cannot be resolved into IP address
    IMAP Yes Host name cannot be resolved into IP address
    Mail Relay Yes Host name cannot be resolved into IP address
    DNS Yes Host name cannot be resolved into IP address
    DHCP Yes Host name cannot be resolved into IP address
    LDAP Yes Host name cannot be resolved into IP address
    RADIUS Yes Host name cannot be resolved into IP address
    DICOM Yes Host name cannot be resolved into IP address
    RAS Yes Connection was not established because of a problem on local system, e.g. modem is used by another application
    UNC Yes Resource is unavailable (option is applicable for free space check only)
    Drive Free Space Yes Disk drive information is unavailable (e. g., the drive is unmapped)
    Folder/File Size Yes File/folder doesn't exist
    Count Files Yes Folder doesn't exist
    Folder/File Availability No  
    File Integrity Yes File doesn't exist or read error
    Text Log Yes File doesn't exist or read error
    Compare Files Yes Target file(s) does not exist
    Process Yes Information (list of processes) cannot be retrieved
    Service Yes Connection to CS Manager cannot be established
    NT Events Log Yes Information cannot be retrieved
    CPU Usage Yes Information cannot be retrieved
    Performance Counter Yes Information cannot be retrieved
    WMI Yes Information cannot be retrieved
    Dominant Process Yes Information cannot be retrieved
    Database No  
    ODBC Query Yes SQL query fails, or the data field specified is not found in the result set
    SNMP Get Yes Information cannot be retrieved
    SNMP Trap Yes Ambiguous configuration. Trap fits both ("good" and "bad") filters
    Traffic Monitor Yes Information cannot be retrieved
    Temperatore Monitor Yes Information cannot be retrieved
    External test Yes HostMonitor cannot execute external program (program doesn't exist) or program doesn't return ERRORLEVEL within a specified time
    Active Script Yes Script returns "Unknown" status, or an error occured during the script execution
    Shell Script Yes Script returns "Unknown" status, or an error occured during the script execution
    * This option is applicable for any test performed by Remote Monitorng Agent because the test may return "Unknown" status in case of RMA failure.


  • Use Normal status
    You may mark this option and provide logical expression to specify when HostMonitor should use "Normal" status for the test item (examples).
    "Normal" status is processed similar to other "good" statuses ("Ok" and "Host is alive"). When HostMonitor sets "Normal" status, it increases "Alive" statistics counters and executes specified "good" actions. When test status changes from "Ok" to "Normal" or vice versa, HostMonitor does not reset "Recurrences" counter. The only difference between Normal and Ok (or "Host is alive") status is that you may use different colors for Normal and Ok statuses and sort test items by status so "Normal" items will be located below (or above) of "Ok" and "Host is alive" items. You may setup specific colors for Normal items to be used by HostMonitor/RCC GUI, HTML reports, HTML log files, charts and Web interface.

    IMPORTANT note: HostMonitor checks logical expressions after test check is done and "reverse alert" option is processed.
    I.e.
    • HostMonitor performs the test;
    • processes "Reverse alert" option;
    • sets "suggested" macro variables (%SuggestedStatus%, %SuggestedSimpleStatus%, %SuggestedReply%, %SuggestedRecurrences% and %FailureIteration%) without touching regular counters (%Status%, %Reply%, %Recurrences%, etc);
    • then HostMonitor checks "Warning" and "Normal" expressions, processes "Tune up Reply" option and finally modifies current test status and statistisc counters (Status, Reply, Alive%, Passed tests, Failed tests, etc).

  • Use Warning status / Treat Warning Status as Bad
    You may mark "Use Warning status" option and provide logical expression to specify when HostMonitor should use "Warning" status for the test item (examples).
    Note: HostMonitor checks logical expressions after test check is done and "reverse alert" option is processed.
    Behaviour of this status is more complicated, it depends on additional option - "Treat Warning status as Bad". "Warning" status is processed by HostMonitor similar to "Unknown" status, therefore "Treat Warning status as Bad" option works similar to "Treat Unknown status as Bad" option that is used for Unknown test status.

  • "Treat Unknown status as Bad" and "Treat Warning status as Bad" do NOT have an influence on the following features:
    • Statistics: unknown test status always increments "unknown" statistics counters; warning status always increments "bad" counters (Dead time, Failed tests, Dead ratio, etc)
    • Test color: "unknown" and "warning" test items always use their own specific colors, independently on "Treat Warning status as Bad" or "Treat Unknown status as Bad" option
    • Folder color: HostMonitor draws folder using color specified for Warning items when folder does not contain any unacknowledged (new) "bad" test but contains some unacknowledged (new) Warning item(s). In other words: "bad" items have top priority, while "warning" items have higher priority than "unknown" items.
    • Logging: HostMonitor always records event when test status changes (Bad -> Bad Contents -> Warning -> No answer -> Host is alive...) unless logging is disabled
    • Reports: you may use separate filter items and different colors for each status (bad, unknown, warning)
    • Dashboard reports: HostMonitor uses color specified for Warning items when folder does not contain any unacknowledged (new) "bad" test but contains some unacknowledged (new) Warning item(s). In other words: "bad" items have top priority, while "warning" items have higher priority than "unknown" items.
    • Macro variables: statistical variables (%HM_WarningItems%, %HM_AckWarntems%, %HM_UnknownItems%, etc) provide information about bad/unknown/warning test items regardless of "Treat Unknown/Warning status as Bad" options
    • HMScript: _AllWarning and _AllUnknown parameters may be used instead of name of the test (e.g. if you need to disable all test items in Warning status)
    • Master-dependant test relations: HostMonitor treat Warning status just like other "Bad" statuses (Bad, Bad Content, No answer)

  • "Treat Unknown status as Bad" and "Treat Warning status as Bad" options do HAVE an influence on the following features:
    • Tray icon: when the option is disabled, "unknown"/"warning" test item will trigger yellow icon (unless there are "red" test items already in the list); enabled "Treat * status as Bad" option tells HostMonitor to use red icon color when test status changes to "unknown"/"warning"
    • %SimpleStatus% macro variable returns "WARNING" string for Warning test items when "Treat Warning as Bad" option is disabled; otherwise it returns "DOWN" string. The variable returns "UNKNOWN" and "DOWN" for Unknown tests accordingly.
    • Actions: most important - these options define HostMonitor's behavior when test status changes.
      If options are disabled, HostMonitor will reset recurrences counter for each status change (bad <-> unknown <-> warning). Also, if options are disabled, HostMonitor will not start standard actions for "Unknown" and/or "Warning" statuses (however you may use advanced actions). As a result this leads to reset of Acknowledged flag, so if you acknowledge Warning status and then status of the test changes to Bad, HostMonitor clears ACK flag and starts specified "bad" actions. Therefore you may need to acknowledge test status again.
      If options are enabled, HostMonitor treats "bad", "unknown" and "warning" as the same status and will not reset "recurrences" counter, will not clear ACK flag either but will start standard actions for "Unknown" and/or "Warning" statuses.

    Why you may need Warning/Normal statuses?

    Example #1: You are monitoring CPU Usage on set of servers. You setup alert threshold (condition that tells HostMonitor when it should use "bad" status and start "bad" alerts) to 80% however you want to separate servers with CPU usage over 50% (and below 80%). So, you may mark "Use Normal status" option and provide expression like ('%SuggestedSimpleStatus%'=='UP') and ('%SuggestedReply%'>'50 %'). This allows you to show CPU Usage test items with CPU load between 50% and 80% using different color/sorting mode.

    Example #2: You are monitoring free disk space on set of servers. You setup alert threshold (when HostMonitor should use "bad" status and start "bad" alerts) to 1 GB however you want to be warned when free space is below 3 GB. So, you may mark "Use Warning status" option and provide expression like ('%SuggestedSimpleStatus%'=='UP') and ('%SuggestedReply%'<'3 Gb'). If you do not mark "Treat Warning status as Bad", HostMonitor will change test status from "Ok" to "Warning" and reset "recurrences" counter when free disk space falls below 3 GB (also HostMonitor may start "advanced" mode actions, e.g. send e-mail to IT staff). You may acknowledge Warning status for such test items.
    Later if disk free space falls below 1 GB, HostMonitor will change test status from Warning to Bad, reset Recurrences counter again, clear Acknowledged flag and start specified "bad" alerts (e.g. send e-mail or page admin). So you will be able to acknowledge "Bad" status now.
    This also allows you to generate different reports for "bad" and "warning" servers, and HostMonitor will use different colors for folders that contain "bad" or "warning" items.

    Example #3: You need to monitor a device that works unreliably - often changes its status from "good" to "bad" and vice versa and you want to be alerted when the device definitely is "dead", not just lost network connection for a minute. Then you may enable "Treat Warning status as Bad", mark "Use Warning status" option and use expression like ('%SuggestedSimpleStatus%'=='DOWN') and (%SuggestedRecurrences%<4). In such case HostMonitor will use Warning status for initial 3 failed probes and change status to Bad after 4th failed check.
    Similarly you may enable "Use Normal status" option and use expression like ('%SuggestedSimpleStatus%'=='UP') and (%SuggestedRecurrences%<4)
    Note 1: You need to enable "Treat Warning status as Bad" option to avoid reset of "recurrences" counter.
    Note 2: Most likely you will use "Start when 4 consecutive Bad results occur" option for the actions assigned to such test item.

    Example #4: you may configure HostMonitor to use Normal status for 1st and 2nd failed probes, use Warning status for 3rd and 4th failed probes and set Bad status starting from 5th failed check:
    • enable "Use Warning status" option and provide (%FailureIteration% > 2) and (%FailureIteration% < 5) expression
    • enable "Use Normal status" option and use expression like (%FailureIteration% > 0) and (%FailureIteration% < 3)

    You could setup "advanced" alerts (actions) to use similar alerting scheme since version 4.0. HostMonitor 6.50 allows you to setup visual distinction between such test items: different colors, different reports, etc.


    Logical expressions:

    When you are using "Test depends on expression" option or custom "Normal"/"Warning" statuses, you should provide logical expression.
    In these expressions you can use:
    • numbers and strings (in quotes). Strings that contain a number plus one of the following unit specificators [ms, Kb, Mb, Gb, %] are compared as numbers, so that '900 Kb' is less than '9 Mb' ('900 Kb' is equivalent to 921600)
    • macro variables related to the current test or to any other test;
    • global macro variables;
    • logical operators [and, or, xor, not, <, >, >=, <=, ==, <>];
    • arithmetic operators [div, mod, +, -]
       div (integer division)
       mod (remainder)
       +  (addition)
       -  (subtraction)
      Note: the value of (x div y) is the value of x divided by y and then rounded in the direction of zero to the nearest integer; 'mod' operator returns the remainder obtained by dividing its operands (in other words, (x mod y) == x - (x div y) * y);
    • operator [in]. Expression 'Substr' in 'Str' searches for a sub string, Substr, in a string Str. Operator returns True when Str contains Substr; otherwise operator returns False
    • parentheses
      In complex expressions, common rules of precedence determine the order in which operations are performed:
      Operators Precedence
      not first (highest)
      div, mod second
      +, -, in third
      <, >, >=, <=, ==, <> fourth
      and, or, xor fifth (lowest)
      An operator with higher precedence is evaluated before an operator with lower precedence, while operators of equal precedence associate to the left. You can use parentheses to override precedence rules. An expression within parentheses is evaluated first and then its result is treated as a single operand.

    Note: There are special buttons in Test Properties dialog that allow you to bring up "Expression editor" window for "Warning", "Normal", and "Tune up Reply" expressions editing.



  • Tune up Reply

    "Tune up Reply value" option was implemented in HostMonitor version 7.06. This test property allows you to specify expression that tells HostMonitor how to recalculate (modify) Reply value of the test item after each probe. HostMonitor checks "Tune up Reply" expression after test probe is done and "reverse alert" option is processed.
    I.e.
    • HostMonitor performs the test;
    • processes "Reverse alert" option;
    • sets "suggested" macro variables (%SuggestedStatus%, %SuggestedSimpleStatus%, %SuggestedReply%, %SuggestedRecurrences% and %FailureIteration%) without touching regular counters (%Status%, %Reply%, %Recurrences%, etc);
    • then HostMonitor evaluates "Warning", "Normal" and "Tune up Reply" expressions and finally modifies current test status, reply field and statistics counters (Status, Reply, Alive%, Passed tests, Failed tests, etc).

    "Tune up Reply" expression may contain regular text, macro variables and arithmetical expressions. Each arithmetical expression should be concluded into square brackets, e.g. "tune up Reply" expression [%SuggestedReply% div 1024 div 1024] Mb tells HostMonitor to divide result of the test by 1048576 (1024*1024) and add Mb suffix to the result. It can be useful when you need to convert bytes to Megabytes, e.g. some WMI requests return high values in bytes. BTW: [%SuggestedReply% div 1024 div 1024] is equivalent to [%SuggestedReply% div 1048576]

    You may use several arithmetical expressions in "Tune up Reply" field. E.g. [%SuggestedReply% div 3600] hours [(%SuggestedReply% mod 3600) div 60] min [%SuggestedReply% mod 60] seconds
    In these arithmetical expressions you can use:

    • numbers and strings (in quotes). Strings that contain a number plus one of the following unit specificators [ms, Kb, Mb, Gb, %] are compared as numbers, so that '900 Kb' is equivalent to 921600
    • macro variables related to the current test or to any other test;
    • global macro variables;
    • the following arithmetical operators:
       div (integer division)
       mod (remainder)
       *  (multiplication)
       +  (addition)
       -  (subtraction)
       and  (bitwise and)
       or  (bitwise or)
       xor  (bitwise xor)
      Note: the value of (x div y) is the value of x divided by y and then rounded in the direction of zero to the nearest integer; 'mod' operator returns the remainder obtained by dividing its operands (in other words, (x mod y) == x - (x div y) * y);
    • parentheses.
      In complex expressions, common rules of precedence determine the order in which operations are performed:
      Operators Precedence
      div, mod, * first (highest)  
      +, - second
      and, or, xor   Third
      An operator with higher precedence is evaluated before an operator with lower precedence, while operators of equal precedence associate to the left. You can use parentheses to override precedence rules. An expression within parentheses is evaluated first and then its result is treated as a single operand.


Test Methods


Listed below are the various test methods supported by HostMonitor, along with a description of their method-specific parameters

Ping


The ping command verifies connections to remote computers, routers and other network components by sending ICMP (Internet Control Message Protocol) echo packets to the remote component and listening for echo reply packets. It's best to use the Ping method to check a remote connection in general. To check specific services and conditions, HostMonitor provides a number of special test types.
In addition to the common test parameters the Ping test has the following options:

Address
Here you should provide the domain name (e. g. www.yahoo.com) or IP address (e. g. 204.71.200.68) of the host that you wish to monitor. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. www.google.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.
Also, a range of IPv4 addresses (e.g. 10.10.1.100 - 10.10.1.254) rather than a single address can be specified. In this case, HostMonitor will create a separate test for each of the addresses within that range.

Timeout
Specify a timeout interval in milliseconds. If you set parameter to 0, HostMonitor will use value of the global Timeout parameter specified on Ping/Trace page in the Options dialog.

Packet size
Specify the size of echo packets. This parameter is optional. If it's value is 0 (default value), HostMonitor will use global Packet Size parameter specified on Ping/Trace page in the Options dialog.

Packets
Specify the number of echo packets. If you set parameter to 0, HostMonitor will use value of the global "Packet to send" parameter specified on Ping/Trace page in the Options dialog.

Don't fragment
This option tells HostMonitor to set "Do Not Fragment" bit on the ping packet.

Time to Live
Time to Live parameter is common for all Ping tests, specify this parameters on Ping/Trace page in the Options dialog.

Status is bad when N (or more) % of packet lost
A packet loss threshold can be specified for a Ping test, based on which the test status is determined. That is, in HostMonitor version 1 a test was considered failed if no echo packets were received (100% loss). Now you can set the packet loss limit.

Display mode
Select 1 of 3 options that determine what information HostMonitor will display in the Reply field:

  • Reply time - the "Reply" field will represent average reply time
  • % of lost - display percentage of lost packets,
  • % of received - display percentage of received packets.

Trace


Traces the route to a remote host over the network. This test allows you to check the route that all packets take to go from your machine to a specific host on the Internet (Intranel, LAN). It also can check the time each hop (or each machine packets go through) takes to answer.
In addition to the common test parameters, the Trace test has the following options:

Address
Here you should provide the domain name (e. g. www.yahoo.com) or IP address (e. g. 204.71.200.68) of the host route that you want to test. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. www.google.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.

Timeout
Specify a timeout interval in milliseconds.

Packet size
Specify the size of ECHO packets in bytes.

Retries
Specify how many times HostMonitor will try to resend ECHO packets when it does not receive the respond.

Alert when
Choose one of the conditions to determine is route "good" or "bad":

  • route was changed
    HostMonitor will mark test as "Bad" every time route changed
  • number of hops different from NN
    Test will change status to "Bad" if number of hops is different from specified
  • number of hops greater than NN
    Test will change status to "Bad" if number of hops is greater than specified
  • number of hops less than NN
    Test will change status to "Bad" if number of hops is less than specified
  • maximum reply time more than NN milliseconds
    Mark test as "Bad" when reply time from any of the hosts is longer than specified
  • traffic thru the host
    HostMonitor will mark test as "Bad" every time traffic will go thru specified intermediate host
  • traffic bypass host
    HostMonitor will mark test as "Bad" every time traffic will not go thru specified intermediate host

Display
This option determines what information HostMonitor will display in Reply field. Choose one of the following options:
  • Total time
  • Average reply time
  • Maximum reply time
  • Number of hops
  • Number of non-responding devices
  • Route, brief mode (list of IP addresses only)
  • Route, full mode (hop, IP address, time)

URL


HostMonitor can perform a URL (Universal Resource Locator) check based on the HTTP (web), HTTPS (secure web), FTP or Gopher protocols. To perform URL check HostMonitor can connect to a remote server directly or through a proxy server, this proxy server can be defined on the PROXY page in the Options dialog.
In addition to the common test parameters, the URL test has the following options:

Basic parameters:

URL
Enter the URL you want to monitor. HostMonitor is not limited to the retrieval of HTML files for the HTTP and HTTPS checking, it can also retrieve other types of pages, even CGI scripts.
Examples of URLs include:

  • http://www.yahoo.com/index.html
  • https://www.super.secure.server.gov:444/unpublished/mainpage.html
  • ftp://ftp.bhs.com/incoming/list.txt

Translate date macro variables
This option allows you to use date & time variables in the "URL" and "Post data" fields. It is useful when you have to monitor web pages that are created on regular basis. E.g. such URL may look like " http://www.sql.company.com/logs/%mm%-%dd%-%yyyy%.html".

Password protected page
Use this option when the URL specified requires a name and password for access.
User name
If the URL specified requires a name and password for access, enter the user name in this box.
Password
If the URL specified requires a name and password for access, enter the password in this box.


Special parameters:

Optional headers
You may specify optional HTTP headers which will be added to the request. For example you can define cookies using string like "Cookie: name1=value1; name2=value2; name3=value3". When you send data to the server using POST method, HostMonitor automatically inserts " Content-Type: application/x-www-form-urlencoded" header.

HTTP POST request
POST requests send data (defined in "Post data" field) to the web server to be processed in some way, like by a CGI script. In this case URL is not a resource to retrieve; it`s usually a program to handle the data you are sending. The HTTP response is normally the program output, not a static file. The most common use of POST is to submit HTML form data to CGI scripts. In this case, the "Content-Type:" header should be set to "application/x-www-form-urlencoded". So, when you choose "HTTP POST request" option, HostMonitor adds this header into "Optional headers" field by default.

Use client certificate
An HTTPS server may require client authentication, in which case a local client certificate should be sent to the server for authentication. Client certificates contain information that identifies the user, as well as information about the organization that issued the certificate.
"Use client certificate" option allows you to choose certificate that will be sent to the server. If test will be performed directly by HostMonitor, application shows list of certificates installed on local system. If URL test will be performed by Remote Monitoring Agent (RMA), HostMonitor requests specified RMA to retrieve list of certificates installed on system where agent is running.


Advanced options:

FTP: Passive mode
In this mode HostMonitor uses passive FTP semantics (option available for FTP checks only) which might be required in order to work properly with some firewalls.

HTTP/HTTPS: Code 302 (redirect) is Ok
This parameter determines the HostMonitor's behavior, when HTTP/HTTPS server issues a redirect. If option disabled and HTTP server returns code 301 (Moved Permanently) or 302 (Moved Temporarily), HostMonitor marks test as "Bad". With this option enabled HostMonitor sets "Host is alive" status.

HTTPS: Ignore unknown certificate authority problems
This option allows checking web servers that use HTTPS protocol and security certificates that were issued by not trusted company. With this option enabled, HostMonitor will accept security certificates issued by any company. When this option is disabled and the certificate belongs to a not trusted company then HostMonitor will set the test status to "no answer".

HTTPS: Accept certificates with invalid host name
This option tells HostMonitor to accept SSL/PCT-based certificate even if certificate was issued for different host
HTTPS: Accept certificates with invalid dates
This option tells HostMonitor to accept expired SSL/PCT-based certificates
By default these options are greyed out, this means HostMonitor should use global options specified on Misc page in the Options dialog. If you mark or unmark test options, these settings will override global options (for this specific test item only).


The URL test doesn't automatically retrieve any objects linked from the page. You can, however, instruct HostMonitor to retrieve the nested frames and images.

Download nested frames
Select this box if you want to retrieve the all frames referenced in a frameset and count their retrieval time in the total time to download this page. If "Download images" is also checked, HostMonitor will attempt to retrieve all images in all frames. In case the program successfully retrieve page specified in the URL field but cannot receive one of the nested frames, HostMonitor will mark test as "Bad contents".

Download images
Enable this option if you want the status and response time statistics to include the retrieval time for all of the embedded images in the page. Embedded images include those referenced by <IMG> HTML tags. Images that appear more than once in a page are only retrieved once. In case the program successfully retrieves the page specified in the URL field but cannot receive one of images, HostMonitor will mark test as "Bad contents".

Check CRC
With this option enabled HostMonitor will save CRC (Cyclical Redundancy Check) of the downloaded data and do a checksum comparison each subsequent time test is performed. If the checksum changes, the test will have "Bad contents" status. So, if someone hack your site, HostMonitor can detect this before thousands of people see their handiwork on your corporate site.
By default HostMonitor calculates (and checks) CRC for page specified in the URL. But if "Download nested frames" and/or "Download images" options are enabled, HostMonitor will calculate CRC for the nested frames and/or images as well.

Recalculate CRC when page content changes detected
With this option enabled, the new checksum will be recorded as the default in case the error "page content changed" occurs, so the test will return to "Good" status until the checksum changes again.


Check contents
HostMonitor can search for a string (or several strings) in the returned page and start alert actions when string exists (or doesn't exist) on the page. Define string(s) and condition to alert using following options:
Mode
This option determines condition to check. Choose one of the available modes:
- should contain HostMonitor will set "Bad contents" status when page does not contain specified string
- should not contain   HostMonitor will set "Bad contents" status when page contains specified string
- use expression HostMonitor will consider the string as Boolean (logical) expression, evaluate expression using data received from the server, and set "Bad contents" status when retrieved page does not satisfy the required conditions.
For example: if you define expression like "'No errors' and not ('Error' or 'Warning')", then HostMonitor will mark test as "Host is alive" when retrieved page contains string 'No error' and does not contain either 'Error' or 'Warning'
Expression
Enter a string of text to check the returned page. Remember that HTML tags are part of a document, so include the HTML tags if they are part of the text you are searching for (for example, "<B>Hello</B> World").
If you chose "use expression" mode, you may use expressions like "("Total" and "End Of Page") and not ('Error' or 'Warning')". In this case, a test will have a "Host is alive" status when monitor can receive specified page and this page contains both strings "Total" and "End Of Page", and doesn't contain either strings "Error" or "Warning". In the expression you may use strings (must be concluded in quotes (') or in double quotes (")); round brackets; logical operators "and", "or", "not".
Translate date macro variables
This option allows you to use date & time variables in the search string. It is useful when you have to monitor web pages that shall be updated regularly. E.g. if you provide "%mm%-%dd%-%yyyy%" in the search string, HostMonitor will check the retrieved document for the presence of a current date and will set "Bad content" status for the documents without current date stamp. This could be useful for testing various scripts and applications that generate web pages.
Case sensitive
With this option enabled search is case sensitive
Whole words only
Searches are for words only. With this option disabled, the search string might be found within longer words.

Note: some server-based scripts can check agent's name and return different information for different HTTP agents (e.g. generate different HTML pages for Internet Explorer or Netscape). To get correct test results you may need to change "Agent name" parameter. Use Miscellaneous page in the Options dialog for this purpose.

HTTP


The HTTP test provides you with the ability to monitor HTTP based servers, verify the content of dynamically generated pages, check for the changed content. Also it can help you verify that CGI scripts and back-end databases are functioning properly. In contrast to URL test, that can perform HTTP request as well, HTTP test does not use wininet.dll (part of Internet Explorer). In this way we can avoid any problems related to IE's bugs (of course we can make mistakes as well but we always are able to fix our own mistakes :-). Also using HTTP test you can define more parameters specific to HTTP protocol and setup more varied checks.
In addition to the common test parameters, the HTTP test has the following options:

HTTP request parameters:

URL
Enter the URL you want to monitor (for example, http://www.ourbiggestserver.com)

Proxy
Optionally, a proxy server can be used to access the URL. Select a proxy server from the drop down list or choose "<none>" to perform direct request to HTTP server.
You can open Proxies List dialog to modify the list of proxy servers. For each item from the proxy list you can specify:

  • Domain name or IP address of the HTTP proxy server
  • TCP port
  • User name
  • Password

Request
Choose type of HTTP request:
HEADER 

request for HTTP header. Server will return status information about the document (HTTP header) but will not transfer data. It allows you to check web server functionality with minimum network traffic but you cannot check the content of the web page.

GET  

request the page specified by URL parameter. Server will return status information (HTTP header) and data. You can use "Check content" and "Check CRC" options to monitor contents of the page.

POST  

send data (defined in "Post data" field) to the web server to be processed in some way, like by a CGI script. In this case URL is not a resource to retrieve; it's usually a program to handle the data you are sending. The HTTP response is normally the program output, not a static file. The most common use of POST is to submit HTML form data to CGI scripts. In this case, the "Content-Type:" header is usually set to "application/x-www-form-urlencoded". So, when you choose POST request, HostMonitor adds this header into "Optional headers" field by default. However you can change that header to another one or remove it.


Follow redirect
This parameter determines the HostMonitor's behavior, when the server issues a redirect. When the option enabled HostMonitor follows redirect and retrieve URL specified by server. If option disabled and HTTP server returns code 301 (Moved Permanently) or 302 (Moved Temporarily), HostMonitor marks test as "Bad".

Post data
If the URL is for a POST request, enter the post variables as name1=value1&name2=value2. This option is used to verify that a form is working correctly by performing the same request which occurs when a user submits a form. See also the "Check content" option for a way to verify that the correct form response was received.

Authorization
Use this option when the URL specified requires a name and password for access.
User name
If the URL specified requires a name and password for access, enter the user name in this box.
Password
If the URL specified requires a name and password for access, enter the password in this box.

Agent
Some server-based scripts can check agent's name and return different information for different HTTP agents (e.g. generate different HTML pages for Internet Explorer or Netscape). You can change this parameter to get correct results.

Timeout
Specify the number of seconds that the test should wait for a page to complete downloading before timing-out. Once this time period is over, the monitor will mark test as "No answer". If you have checked the "Download nested frames" or "Download images" option, HostMonitor will use the same timeout for all frames/images referenced on the page.
If the Timeout property is set to 0 (default value), HostMonitor will use default Windows timeout specified for TCP protocol.

Allow per-session cookies
With this option enabled HostMonitor remembers cookies received from the server, and sends them back in case of redirection to another URL.
This option can be useful when you need to check some access-restricted resources. Often web-based authorization systems use cookies to identify user. How it usually works:
- user opens login page, enters login and password, and clicks "Login" button;
- browser sends POST or GET request to a server with data entered by user;
- server checks login/password and (in case data are correct) assings session ID for the user;
- server sends cookie that contains ID to user's browser, and redirects user to another page;
- browser must store cookie and send it back to server every time it (browser) requests access-restricted pages
So, now HostMonitor can work like your browser and login to your mailbox to check whether you have the new messages. See also the "Check content" option for a way to verify that the correct response was received.

Optional headers
Specify optional HTTP headers those will be added to request. For example you can define cookies using string like "Cookie: name1=value1; name2=value2; name3=value3". When you send data to the server using POST method, HostMonitor automatically insert "Content-Type: application/x-www-form-urlencoded" header.


Optional test parameters:

The HTTP test doesn't automatically retrieve any objects linked from the page. You can, however, instruct HostMonitor to retrieve the nested frames and images.

Download nested frames
Select this box if you want to retrieve the all frames referenced in a frameset and count their retrieval time in the total time to download this page. If "Download images" is also checked, HostMonitor will attempt to retrieve all images in all frames. In case the program successfully retrieve page specified in the URL field but cannot receive one of the nested frames, HostMonitor will mark test as "Bad contents".

Download images
Enable this option if you want the status and response time statistics to include the retrieval time for all of the embedded images in the page. Embedded images include those referenced by <IMG> HTML tags. Images that appear more than once in a page are only retrieved once. In case the program successfully retrieves the page specified in the URL field but cannot receive one of images, HostMonitor will mark test as "Bad contents".

Check CRC
With this option enabled HostMonitor will save CRC (Cyclical Redundancy Check) of the downloaded data and do a checksum comparison each subsequent time test is performed. If the checksum changes, the test will have "Bad contents" status.
By default HostMonitor calculates (and checks) CRC for page specified in the URL. But if "Download nested frames" and/or "Download images" options are enabled, HostMonitor will calculate CRC for the nested frames and/or images as well.

Recalculate CRC when page content changes detected
With this option enabled, the new checksum will be recorded as the default in case the error "page content changed" occurs, so the test will return to "Good" status until the checksum changes again.

Check header
HostMonitor can search for a string (or several strings) in the HTTP header (received from a server) and start alert actions when the string exists (or doesn't exist) in the header. Define string(s) and condition to alert using following options:
Mode
This option determines condition to check. Choose one of the available modes:
- should contain HostMonitor will set "Bad contents" status when HTTP header does not contain specified string
- should not contain   HostMonitor will set "Bad contents" status when HTTP header contains specified string
- use expression HostMonitor will consider the string as boolean (logical) expression, evaluate expression using data received from the server, and set "Bad contents" status when retrieved HTTP header does not satisfy the required conditions.
For example: if you define expression like "'HTTP/1.1' and not ('301' or '302')", then HostMonitor will mark test as "Host is alive" when retrieved data contains string 'HTTP/1.1' and contains neither '301' nor '302'.
Expression
Enter a string to check the returned HTTP header. If you chose "use expression" mode, you may use expressions like "('HTTP/1.1' or 'HTTP/1.0') and not ('301' or '302')". In this case, a test will have a "Host is alive" status when monitor gets reply from the server and retrieved HTTP header contains either strings "HTTP/1.1" or "HTTP/1.0", and doesn't contain either strings "301" or "302". In the expression you may use strings (must be concluded in quotes (') or in double quotes (")); round brackets; logical operators "and", "or", "not".
Case sensitive
With this option enabled search is case sensitive
Whole words only
Searches are for words only. With this option disabled, the search string might be found within longer words.

Check contents
HostMonitor can search for a string (or several strings) in the returned page and start alert actions when string exists (or doesn't exist) on the page. Define string(s) and condition to alert using following options:
Mode
This option determines condition to check. Choose one of the available modes:
- should contain HostMonitor will set "Bad contents" status when page does not contain specified string
- should not contain   HostMonitor will set "Bad contents" status when page contains specified string
- use expression HostMonitor will consider the string as boolean (logical) expression, evaluate expression using data received from the server, and set "Bad contents" status when retrieved page does not satisfy the required conditions.
For example: if you define expression like "'No errors' and not ('Error' or 'Warning')", then HostMonitor will mark test as "Host is alive" when retrieved page contains string 'No error' and does not contain either 'Error' or 'Warning'
Expression
Enter a string of text to check the returned page. Remember that HTML tags are part of a document, so include the HTML tags if they are part of the text you are searching for (for example, "<B>Hello</B> World").
If you chose "use expression" mode, you may use expressions like "("Total" and "End Of Page") and not ('Error' or 'Warning')". In this case, a test will have a "Host is alive" status when monitor can receive specified page and this page contains both strings "Total" and "End Of Page", and doesn't contain either strings "Error" or "Warning". In the expression you may use strings (must be concluded in quotes (') or in double quotes (")); round brackets; logical operators "and", "or", "not".
Translate date macro variables
This option allows you to use date & time variables in the search string. It is useful when you have to monitor web pages that shall be updated regularly. E.g. if you provide "%mm%-%dd%-%yyyy%" in the search string, HostMonitor will check the retrieved document for the presence of a current date and will set "Bad content" status for the documents without current date stamp. This option could be useful for testing various scripts and applications that generate web pages.
Case sensitive
With this option enabled search is case sensitive
Whole words only
Searches are for words only. With this option disabled, the search string might be found within longer words.

Set "Bad" status when total download time is longer than NN msec
With this option enabled HostMonitor will check total download time and mark status as "Bad" when download time is longer than specified.

BTW: When HostMonitor cannot retrieve page at all, it marks test as "No answer" and Reply value will be empty. In case all checks passed, HostMonitor mark status as "Host is alive" and display total download time in the "Reply" field. Also "Reply" field will display total download time when any reply received from HTTP server, even if its message about error such as "Page not found" error.

TCP


The TCP test provides you with the ability to monitor TCP based servers such as Whois, Finger, Telnet, Chargen, etc. Please note, that you may check SMTP, POP, IMAP, DNS, LDAP, HTTP/HTTPS, and FTP servers using dedicated SMTP, POP, IMAP, DNS, LDAP, URL, HTTP tests.
In addition to the common test parameters, the TCP test has the following options:

Host
Here you should provide the domain name (e. g. www.yahoo.com) or IP address (e. g. 204.71.200.68) of the host that should process the TCP connection.. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. www.google.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.
Also, a range of IPv4 addresses (e.g. 10.10.1.100 - 10.10.1.254) rather than a single address can be specified. In this case, HostMonitor will create a separate test for each of the addresses within that range.

Port
Specify the port number on which the host is listening for incoming TCP packets. E.g. Telnet servers use port #23, Whois servers uses port #43, etc. For a list of conventional port numbers click the button to the right of the port number box.

Timeout
Enter the amount of time (in seconds) that HostMonitor should wait for a response from the server. If this value is 0 (default value), HostMonitor uses the default Windows timeout.

The following optional parameters allow you not only to check whether the connection could be accepted by remote server but also allow to send some data to that server and check the response from it.

Send data
If you want to send data to the host (after TCP connection established), mark this option and enter the packet data. If you need to send binary data, use sequences formatted %XX where XX is a hexadecimal code of a character (byte). E.g. HELLO%0D%0A would send HELLO followed by a character ASCII 13 (line feed) and ASCII 10 (new line).

Alert when
To check the reply from the server, mark this option and choose one of the conditions to consider result of the test as "Bad":
- no reply HostMonitor will set "No answer" status when no reply from the server received and set test status to "Host is alive" when any reply received
- any reply HostMonitor will set "Ok" status when no reply from the server received and set test status to "Bad" when any reply received
- reply contains HostMonitor will set "Bad" status when reply from the server contains specified string (defined in "Compare with" field). If reply doesn't contain the specified string, HostMonitor will set "Ok" status. The program sets status to "No answer" when no reply received.
- reply doesn't contain   HostMonitor will set "Ok" status when reply from the server contains specified string (defined in "Compare with" field). If reply doesn't contain the specified string, HostMonitor will set "Bad" status. The program sets status to "No answer" when no reply received.
- reply equal to HostMonitor will set "Bad" status when reply from the server equal to specified string (defined in "Compare with" field). If reply doesn't equal to the specified string, HostMonitor will set "Ok" status. The program sets status to "No answer" when no reply received.
- reply not equal to HostMonitor will set "Ok" status when reply from the server equal to specified string (defined in "Compare with" field). If reply doesn't equal to the specified string, HostMonitor will set "Bad" status. The program sets status to "No answer" when no reply received.

Compare with
HostMonitor can compare data that was received from the server with specified string (use "Alert when" option to choose compare condition). As in "Send data" field you can use sequences formatted %XX where XX is a hexadecimal code of a character (byte). E.g. "October%00%00"

UDP


The UDP test provides you with the ability to monitor UDP based servers such as TFTP, SNTP, Daytime, etc. Please note, to check DNS, NTP, and RADIUS servers you can use dedicated DNS, NTP, and RADIUS tests.
In addition to the common test parameters, the UDP test has the following options:

Server
Here you should provide the domain name (e. g. www.yahoo.com) or IP address (e. g. 204.71.200.68) of the host that should process the UDP data packet. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. www.google.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.

Port
Specify the port number on which the host is listening for incoming UDP packets. E.g. TFTP servers use port #69, SNTP servers use port #123, Daytime servers use port #13, etc

Retries
Set the number of times HostMonitor will resend data to the server before test fails.

Timeout
Enter the amount of time (in seconds) that HostMonitor should wait for a response from the server.

Packet to send
Enter the packet data that should be sent to the host. Because most UDP servers accept binary data, you may need to use sequences formatted %XX where XX is a hexadecimal code of a character (byte). E.g. HELLO%0D%0A would send HELLO followed by a character ASCII 13 (line feed) and ASCII 10 (new line).

Alert when
Choose one of the conditions to consider result of the test as "Bad":
- no reply HostMonitor will set "No answer" status when no reply from the server received and set test status to "Host is alive" when any reply received
- any reply HostMonitor will set "Ok" status when no reply from the server received and set test status to "Bad" when any reply received
- reply contains HostMonitor will set "Bad" status when reply from the server contains specified string (defined in "Compare with" field). If reply doesn't contain the specified string, HostMonitor will set "Ok" status. The program sets status to "No answer" when no reply received.
- reply doesn't contain   HostMonitor will set "Ok" status when reply from the server contains specified string (defined in "Compare with" field). If reply doesn't contain the specified string, HostMonitor will set "Bad" status. The program sets status to "No answer" when no reply received.
- reply equal to HostMonitor will set "Bad" status when reply from the server equal to specified string (defined in "Compare with" field). If reply doesn't equal to the specified string, HostMonitor will set "Ok" status. The program sets status to "No answer" when no reply received.
- reply not equal to HostMonitor will set "Ok" status when reply from the server equal to specified string (defined in "Compare with" field). If reply doesn't equal to the specified string, HostMonitor will set "Bad" status. The program sets status to "No answer" when no reply received.

Compare with
HostMonitor can compare data that was received from the server with specified string (use "Alert when" option to choose compare condition). As in "Packet to send" field you can use sequences formatted %XX where XX is a hexadecimal code of a character (byte). E.g. "October%00%00"


Examples:

To check your TFTP server fill up test parameters with following values:
  Server: address of the server
  Port: 69
  Alert when: no reply
  Packet to send:   %00%01filename%00%00netascii%00
where filename is the name of the file on the server. We recommend provide incorrect (fake) name of the file.

To check SNTP server fill up test parameters with following values:
  Server: address of the server
  Port: 123
  Alert when: no reply
  Packet to send:   %0B%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
Yes, string must be so long because request packet must contain 48 bytes

NTP/SNTP


The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the global Internet. Using NTP/SNTP test you can easily check you NTP/SNTP server.
In addition to the common test parameters, the NTP test has the following options:

Server
Here you should provide the host name (e. g. www.yahoo.com) or IP address (e. g. 204.71.200.68) of the destination host that should receive and process the request from HostMonitor. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. www.google.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.

Port
Specify the port number on which the host is listening for incoming packets. By default NTP servers using port #123.

Retries
Set the number of times HostMonitor will resend data to the server before test fails.

Timeout
Enter the amount of time (in seconds) that HostMonitor should wait for a response from the server.

Alert when difference in time greater than XX sec
With this option enabled HostMonitor will mark test item as "Bad" when difference in time between the server and local system greater than specified value. If this option is disabled HostMonitor will set test's status to "Host is alive" when any correct response received from the server.

Display mode
This parameter defines what HostMonitor will display in "Reply" field. Choose one of the following options:

  • Reply time - display time required to send request and receive reply from the server
  • Remote time - display server's system time (Coordinated Universal Time)
  • Difference in time - display difference in time between server and local system

SMTP


Most Internet e-mail servers use the Simple Mail Transfer Protocol (SMTP) to transmit e-mail from server to server. HostMonitor monitors this type of server by sending an SMTP command to the server as if it were an e-mail client or another server verifying the existence of a user. By verifying the username, the program effectively tests the SMTP server`s mail database without generating unnecessary mail messages.
In addition to the common test parameters, the SMTP test has the following options:

Server
Here you should provide the host name (e. g. mail.ourdomain.com) or IP address (e. g. 204.71.200.68) of the mail server you want to test. Also you may provide IPv6 addresses (e.g. fe80::370:ff56:fed5:22) and specify hostname with suffixes ::ipv4 or ::ipv6 (e.g. mail.ourdomain.com::ipv4 or www.6bone.net::ipv6).
If you specify hostname without any suffix, HostMonitor will try to resolve name into IP address using IPv4 protocol. If name cannot be resolved by IPv4 protocol, HostMonitor will try to use IPv6 protocol. If you specify hostname with ::ipv4 (or ::ipv6) suffix, HostMonitor will use IPv4 (or IPv6) protocol only.
Note: HostMonitor supports IPv6 on Windows XP SP2, Windows 2003, Windows Vista and Windows Server 2008 when IPv6 protocol is installed. On Windows NT 4.0 and Windows 2000 only IPv4 is supported. You may use menu Tools -> Local Info to check is your system IPv6 ready.

Port
The default test port is 25, but you can specify a non-standard port. For a list of conventional port numbers click the button to the right of the port number box.

Timeout
This is the amount of time in seconds the program will wait for a response from the server before the request fails. Set this to 0 for no timeout (not recommended).

Perform 'VRFY' test
When checked, the test performs will include the verify ('VRFY') command, which is a complete test of the server's user database and its ability to respond to client requests. When this field is not checked, HostMonitor will log on to the mail server and then log off, but will not issue the "VRFY" command as part of the test. Skipping this command provides nearly the same level of server monitoring, since logging on and off effectively verifies that the mail server is accepting connections.
For mail servers that support the "VRFY" command, and have it enabled, we suggest that you use the complete test. However, some mail servers do not support the "VRFY" command, so turning this check off is required. In addition, for security reasons, the "VRFY" command is sometimes disabled on some servers, again requiring that this extra test would be turned off.

User Name
Enter a valid e-mail account name that exists on the server you are testing. HostMonitor will ask the server if this user exists. Most mail servers have "root" or "postmaster" accounts defined, even if the server is used only to forward outgoing mail. You can also use your own account name, assuming you have an account on that server.

POP3


E-mail is commonly posted and transferred between mail servers using SMTP, but access to mail is provided through POP3 (Post Office Protocol version 3). POP3 test can be used to test that your mail server's POP functions are functioning perfectly. To perform test HostMonitor login to the server and logout using specified user account. As an option HostMonitor can check number of messages and size of messages for specified user. If messages count/size exceed specified limit, the program can start alert actions.
In addition to the common test parameters, the POP3 test has the following options:

Server
This is the name or IP address of the mail server you want to test, usually in the form "mail.yourcom.com".

Port
The default test port is 110, but you can specify a non-standard port.

Timeout
This is the amount of time in seconds the program will wait for a response from the server before the request fails. Set this to 0 for no timeout (not recommended).

User Name
HostMonitor will test the POP server by logging in to it using an existing account. In the user name field, supply the name of an account that can be used for testing. HostMonitor will log into the account and check the status of its mailbox without accessing, modifying or deleting any of the messages held in it.

Password
Supply the password for the user account HostMonitor will log into during the test.

Alert when mailbox contains more then [NN] messages
Mark this option and specify limit amount of messages in a mailbox. When this limit is reached, HostMonitor will change test status to Bad.

Alert when total size of messages bigger than [NN] MB
Mark this option and specify the size limit of all messages in a mailbox. When this limit is reached, HostMonitor will change test status to Bad.

Note: Value of the 'Reply' field depends on the test's settings:

  • if test checks number of messages, HostMonitor will display number of messages
  • if test checks total size of messages, HostMonitor will display total size of messages.
  • if both these options disabled and test checks server status only (connect, login and logout), Reply value will contain the test execution time (that shows the reply speed of the server).
  • Reply value is empty when the program cannot connect or login to server

IMAP


Some Internet mail servers support IMAP (Internet Message Access Protocol) for exchanging and manipulating e-mail. The IMAP test works much in the same way that POP3 test function to test IMAP compliant mail servers. The IMAP test performed by HostMonitor involves logging in to your mail server using an existing account and checking the status of the mailbox for that user. As option HostMonitor can check number of messages and size of messages for specified mailbox. If message count/size exceed specified limit, the program can start alert actions.
In addition to the common test parameters, the IMAP test has the following options:

Server
This is the name or IP address of the mail server that you want to test, usually in the form "mail.yourcom.com".

Port
The default test port is 143, but you can specify a non-standard port.

Timeout
This is the amount of time in seconds the program will wait for a response from the server before the request fails. Set this to 0 for no timeout (not recommended).

User Name
HostMonitor will test the IMAP server by logging in to it using an existing account. In the user name field, supply the name of an account that can be used for testing. HostMonitor will log into the account and check the status of it's mailbox without accessing, modifying or deleting any of the messages held in it.

Password
Supply the password for the user account HostMonitor will log into during the test.

Check mailbox
Mark this combobox and select one of the folowing options to check the parameters of the specified mailbox.

Mailbox
Specify name of the mailbox to check.

Alert when mailbox contains more then [NN] messages
Select this option and specify the limit amount of messages in the mailbox. When this limit is reached, HostMonitor will change test status to Bad.

Alert when total size of messages bigger than [NN] MB
Select this option and specify the size limit of all messages in the mailbox. When this limit is reached, HostMonitor will change test status to Bad.

Recent messages only
With this option enabled, HostMonitor will check only recent messages. The recent messages are the messages that appear in the mailbox after the last check.

Note: Value of the 'Reply' field depends on the test settings:

  • if test checks number of messages, HostMonitor will display number of messages.
  • if test checks total size of messages, HostMonitor will display total size of messages
  • if 'check mailbox' options disabled and test checks server status only (connect, login and logout), Reply value will contain the test execution time (that shows the reply speed of the server). <