ICMP Monitor
The ICMP monitor tests the performance of the Internet Control Message Protocol service running on a network. To do this, the monitor uses the ICMP echo command.
| Monitor files | Name or location |
|---|---|
| Monitor executable | nco_m_icmp |
| Properties file | $ISHOME/etc/props/icmp.props |
| Rules file | $ISHOME/etc/rules/icmp.rules |
| Log file | $ISHOME/log/icmp.log |
- Guidelines for configuring ICMP monitor
-
The ICMP monitor issues ICMP echo requests (commonly called
pings) to target hosts and waits for an echo reply response. It records lookup times, round-trip times, and success rate metrics that provide an indication of how well the network is performing. When the monitor issues an echo request, the request may pass through one or more routers before it reaches the target host. These routers can respond to the monitor before the target host has received the echo request. If an echo request issued by the monitor passes through a router, the router may issue a reply to the monitor. This reply might indicate that the router cannot locate the target host, or that the router is too busy to process the request. It’s possible that the monitor might receive replies from multiple routers before it receives an echo-reply from the target host. If the monitor successfully receives an echo-reply from the target host, it records the time taken. If the monitor doesn’t receive a reply from the target server within the specified timeout period, the request is recorded as failed. You can configure the monitor to send multiple ICMP echo requests to the same target in each test. The monitor records statistics for each of the requests sent.Note: Run the ICMP monitor asrootbecause it opens a raw socket to send ICMP packets.
- Configuring ICMP monitor service tests
-
Use the ICMP monitor configuration parameters to define service tests. When you configure the monitor, default values are shown for the timeout and poll interval parameters. These defaults are 30 and 300 seconds respectively. Other defaults listed in the table aren’t shown during configuration but are applied when the configuration details are saved if no value has been specified.
The followinf table lists the ICMP monitor configurations.
Table 2. ICMP monitor configuration Field Description server The host name or IP address of the server to which the echo requests are sent. Example is test.myconpany.com description A text field for providing descriptive information on the element. timeout The time, in seconds, to wait for the server to respond to each echo request.
Default: 10
numberofpings The number of echo requests to send.
Default: 5
packetinterval The time, in seconds, to wait between sending echo requests.
Default: 1
packetsize The size, in bytes, of each echo request sent.
Default: 64
typeofservice Sets the Type of Service field in the IP layer. Both IPv4-style Type Of Service (TOS) values and DSCP Differentiated Service Field values may be entered. Valid values are 0 -255. retries The number of times the monitor should retry each echo request before quitting.
Default: 0
poll The time, in seconds, between each poll.
Default: 300
failureretests The number of times to retest before indicating a failure.
Default: 0
retestinterval The time, in seconds, to wait between each failure retest.
Default: 10
hostnamelookuppreference Determines which IP version, IPv6 or IPv4, is applied to the supplied host name. Options are: - default sets the monitor to use monitor-wide properties settings. This is the default.
- 4Then6 selects IPv4 and then IPv6. Uses IPv4 addresses if they are available. If no IPv4 addresses are found, IPv6 addresses are used.
- 6Then4 selects IPv6 and then IPv4. Uses IPv6 addresses if they are available. If no IPv6 addresses are found, IPv4 addresses are used.
- 4Only selects IPv4 only. Uses IPv4 addresses only. If there are no IPv4 addresses, the poll returns an error.
- 6Only selects IPv6 only. Uses IPv6 addresses only. If there are no IPv6 addresses, the poll returns an error.
- 6Or4 selects either IPv4 or IPv6. Uses the first address returned from the host name.
Note: Monitor the availability of the host test.mycompany.com by checking the response times at 10-minute intervals. Attempt to connect to the server within 30 seconds and, if it times out, retry twice more. If it still fails, repeat the test three times with 5 seconds between each retry. - Monitor elements
-
In addition to the test results common to all elements, the ICMP monitor generates a set of test results containing data specific to ICMP service tests.
The following table describes the additional elements for the ICMP monitor.
Elements indicated by an asterisk (*) are available as attributes. The names of the attributes are shown within brackets below the element. Absence of an asterisk indicates there’s no equivalent attribute. Attributes shown in bracket but without an element indicate that they are only available as attributes, there’s no equivalent element.
Table 3. ICMP monitor elements Element Description $averageRTT*(AverageRTT)The average round-trip time in seconds. $endTimeThe UNIX time the response was received. $jitterThe absolute value of the difference between the arrival times of two adjacent ICMP echo requests, minus their departure times. This value is calculated according to the formula specified in RFC2598. The element is created only if the number of echo requests is greater than one. If more than two echo requests are used, the value is the average jitter between all pairs of echo requests. $lookupTime*(LookupTime)The time taken to obtain the IP address of the host server. $maxRTT*(MaxRTT)The maximum round-trip time in seconds. $minRTT*(
MinRTT)The minimum round-trip time in seconds. $numberPacketsThe number of ICMP echo requests sent, as specified in the profile element. $packetIntervalThe time between sending each ICMP echo request, as specified in the profile element. $packetRetriesThe number of times the monitor tried to resend ICMP echo requests before exiting. $packetSizeThe size (in bytes) of each ICMP echo request, as specified in the profile element. $pingAttempts FailedThe number of attempts made for the first unsuccessful ICMP echo request. $pingAttempts RespondedThe number of attempts made for the first successful ICMP echo request. $pingMessageFailedThe message returned for the first unsuccessful ICMP echo request. $pingMessage RespondedThe message returned for the first successful ICMP echo request. $pingReceivedTime FailedThe UNIX time the first unsuccessful echo response was received. $pingReceivedTime RespondedThe UNIX time the first successful echo response was received. $pingRespondIP FailedThe IP address that responded to the first unsuccessful ICMP echo request. $pingRespondIP RespondedThe IP address that responded to the first successful ICMP echo request. $pingRTTFailedThe round-trip time for the first unsuccessful ICMP echo request in seconds. $pingRTTRespondedThe round-trip time for the first successful ICMP echo request in seconds. $pingSentTime FailedThe UNIX time that the first unsuccessful ICMP echo request was sent. $pingSentTime RespondedThe UNIX time that the first successful ICMP echo request was sent. $pingsFailedThe number of ICMP echo requests sent to which there was no echo response. $pingsRespondedThe number of valid echo responses received. $pingTimeThe time taken to receive the echo response after sending the ICMP echo request. $respondPercent*
(RespondPercent)The percentage of ICMP echo requests sent for which there was a response. $responseTimeThe time taken for the target host to respond to an ICMP echo request. $sentTimeThe UNIX time that the ICMP echo requests were sent. $spreadRTTThe difference between $maxRTTand$minRTT.$startTimeThe UNIX time the test began. $totalHostTimeThe time taken to receive the echo response after beginning the test. $typeOfServiceThe Type of Service field in the IP layer, as specified when adding a new ICMP element. For details, see ICMP Monitor.
The ICMP monitor creates a separate set of $pingname elements to record the results for each ICMP echo request sent during the test. The number of requests sent is indicated by $numberPackets. For example, for the $pingRTT element, if $numberPackets is 3, the monitor creates three elements ($pingRTT1, $pingRTT2, and $pingRTT3), containing the round-trip time measurement for the three ICMP echo requests sent.
- Status message
-
The ICMP monitor provides status messages in the
ResultMessageattribute when using IBM® Application Performance Management. These messages indicate the result of the test.The following table describes the ICMP status messages.
Table 4. ICMP monitor status messages Message Description Pings CompleteThe ICMP echo request succeeded. ICMP echo failedThe monitor cannot issue the ICMP echo request because there’s a problem with the monitor host or its connection to the network. Timed outThe ICMP echo request timed out. UnreachableThis message is returned from a router and isn’t necessarily accurate. Source quenchA router is too busy to process the ICMP echo request. Time exceededThis message is returned from a router. It indicates that the ICMP echo request has been forwarded around the network too many times. Parameter problemThis message is returned from a router. It indicates that the router can’t process the ICMP echo request. This might be because the message has been corrupted. - Properties
-
The properties specific to the ICMP monitor are described in the following.
Table 5. ICMP properties Property name Property parameter Description EventsPerSecnot applicable This property isn’t supported. IntraPingWaitinteger The minimum time interval in milliseconds between all pings sent by the ICMP monitor. Use to tune your system to spread the network traffic over a longer period. For example, in an environment with thousands of targeted ICMP hosts, set
IntraPingWaitto 3.Default: 0
Ipv6Addressinteger The local address to bind to as an origin for ICMP echo requests when using ICMP IPv6.
Default: no address
MaxDNSResolvingThreadsinteger The maximum number of threads to be used by the DNS Resolver.
Default:
20MaxPacketSizeinteger The maximum ICMP packet size in bytes.
PingsPerSecinteger The number of echo requests the monitor attempts to send per second. The number of actual requests sent dependents on CPU and network load.
Default:
100SocketBufferSizeinteger The size of the receiving socket buffer (in kilobytes).
Default:
32