ICMP ping
The following options exist to monitor systems using ICMP pings:
ICMP response statistic collection
Metrics provided by ping subagent
ICMP response statistic collection
NetXMS can periodically perform ICMP polls and calculate node
availability statistics. This functionality can be controlled globally via
server configuration parameter ICMP.CollectPollStatistics
or locally on each
node. ICMP polling interval and statistic calculation period (expressed in
number of polls), timeout and ICMP packet size are configured via server
configuration parameters, see Server configuration parameters.
ICMP requests are sent to node’s primary IP address. Additional targets can be specified in node’s properties. It’s also possible to set node’s interfaces as targets by enabling Collect ICMP response statistic for this interface in properties of the interface (enabling this for interface that corresponds to primary IP address will lead to pinging this address twice).
ICMP polling is performed from server, from a zone proxy if zoning is used or
from specific proxy if it’s configured in node properties. Proxying agent should
have ping.nsm
subagent enabled.
Results of ICMP response statistic collection for primary IP address are visible in Object Details -> Overview and are available as internal metrics:
ICMP.ResponseTime.Average
ICMP.PacketLoss
ICMP.ResponseTime.Last
ICMP.ResponseTime.Max
ICMP.ResponseTime.Min
Results of ICMP response statistic collection for additional targets and interfaces are available as internal metrics:
ICMP.ResponseTime.Average(*)
ICMP.PacketLoss(*)
ICMP.ResponseTime.Last(*)
ICMP.ResponseTime.Max(*)
ICMP.ResponseTime.Min(*)
For example, ICMP.PacketLoss(8.8.8.8)
internal metric will provide packet
loss for target with IP address 8.8.8.8.
No historical data is stored by default. It’s necessary to configure DCIs using above mentioned internal metric to store historical data.
Ping subagent
This subagent can be used to measure ICMP ping response times from one location to another. When loaded, PING subagent adds a number of metrics to the agent. Measurements can be either requested by the server or scheduled by the agent itself.
Metrics requested by server
Metric |
Description |
---|---|
Icmp.Ping(target, timeout, psize, dontfragmentflag, retrycount) |
ICMP ping response time from target. Agent will send echo request as soon as it receives request for metric’s value, and will return response time for that particular request. Arguments:
Please note that while metrics scheduled by agent just return result of background ping process, this metric waits for actual ping completion and then returns the result. Because of this behavior, it is not recommended to use Icmp.Ping metric for regular monitoring, only for occasional tests. For instant monitoring, you should configure targets for background ping and use Icmp.AvgPingTime or Icmp.LastPingTime metrics to retrieve results. |
Metrics scheduled by the agent
There is a number of metrics that are collected based on background ping process scheduled by the agent (based on “PacketRate” parameter).
Targets for these metrics can be either defined in agent configuration file (using one or more “Target” parameters), or registered automatically on first request from server. If targets are registered automatically, default packet size is used. First request to non-existing target will return “0” as a value. Automatically registered targets are automatically removed after a timeout, if server stops requesting metrics for that target.
Single-value metrics
Metric |
Description |
---|---|
Icmp.AvgPingTime(target) |
Average ICMP ping response time from target for last minute. Argument target can be either IP address or name specified in Target configuration record (see below). |
ICMP.MovingAvgPingTime(target) |
Moving average of response time from target. Time period for moving average calculation is set by MovingAverageTimePeriod agent configuration parameter (see below). |
Icmp.LastPingTime(target) |
Last ICMP ping response time from target. |
ICMP.MaxPingTime(target) |
Maximum ICMP ping response time from target for last minute. |
ICMP.MinPingTime(target) |
Minimum ICMP ping response time from target for last minute. |
ICMP.CumulativeMaxPingTime(target) |
Maximum encountered ICMP ping response time from target since that target was added. |
ICMP.CumulativeMinPingTime(target) |
Minimum encountered ICMP ping response time from target since that target was added. |
Icmp.PacketLoss(target) |
ICMP ping packet loss (in percents) for target for last minute. |
Icmp.PingStdDev(target) |
Standard deviation of the response time for the target for last minute. |
ICMP.Jitter(target) |
Jitter of ICMP ping response time from target for last minute. |
ICMP.MovingAvgJitter(target) |
Moving average of response time jitter from target. Time period for moving average calculation is set by MovingAverageTimePeriod agent configuration parameter (see below). |
Tables
Table |
Description |
---|---|
Icmp.Targets |
Table of configured ping targets. Columns:
|
Lists
List |
Description |
---|---|
Icmp.Targets |
List of configured ping target names |
Configuration file
All configuration parameters related to PING subagent should be placed into [PING] section of agent’s configuration file. The following configuration parameters are supported:
Parameter |
Format |
Description |
Default value |
---|---|---|---|
AutoConfigureTargets |
boolean |
Allow automatic registration of ICMP targets when a metrics for a new target is requested from server. |
yes |
DefaultDoNotFragmentFlag |
boolean |
Default value for Don’t Fragment flag in ICMP requests. |
no |
DefaultPacketSize |
bytes |
Set default packet size to bytes. |
46 |
MaxTargetInactivityTime |
seconds |
Timeout to remove automatically registered ICMP target if server stops requesting metrics for that target. |
86400 |
MovingAverageTimePeriod |
seconds |
Set time period used for moving average value calculation. |
3600 |
PacketRate |
packets |
Set ping packet rate per minute. Allowed values are from 1 to 60 and values below or above will be adjusted automatically. |
4 |
Target |
ip:name:psize |
Add target with IP address ip to background ping target list and assign an optional name name to it. Target will be pinged using packets of psize bytes size. Name and packet size fields are optional and can be omitted. This parameter can be given multiple times to add multiple targets. |
none |
ThreadPoolMaxSize |
threads |
Maximal number of threads in agent’s thread pool that is serving scheduled ICMP measurements. |
1024 |
ThreadPoolMinSize |
threads |
Minimal number of threads in agent’s thread pool that is serving scheduled ICMP measurements. |
1 |
Timeout |
milliseconds |
Set response timeout to milliseconds. Allowed values are from 500 to 5000 and values below or above will be adjusted automatically. |
3000 |
Configuration example:
# This sample nxagentd.conf instructs agent to:
# 1. load PING subagent
# 2. Ping target 10.0.0.1 with default size (46 bytes) packets and 10.0.0.2 with 1000 bytes packets
# 3. Timeout for ping set to 1 second and pings are sent 12 times per minute (each 5 seconds)
MasterServers = netxms.demo
SubAgent = ping.nsm
[PING]
Timeout = 1000
PacketRate = 12 # every 5 seconds
Target = 10.0.0.1:target_1
Target = 10.0.0.2:target_2:1000
Note
Response time of 10000 indicate timeout