NMIS will try to make sure it's own fpingd.pl is running every time a collect or update is run if configured to use it (detailed below). If fpingd is not enabled or the loss value for the node to ping cannot be found in the fping status file nmis-fping.nmis then NMIS will run a ping of it's own. This code can be found in nmis.pl in sub runPing.
fpingd
fpingd is enabled by default, the config setting (in Config.nmis) to control this is:
'daemon_fping_active' => 'true',
fpingd runs a constant cycle of pinging all nodes updating the NMIS event table, sleeping and then doing it all over again. Every 10 poll cycles the Nodes.nmis file is re-read to look for changes.
Nodes are split into groups of size fastping_node_poll and then fping is run on these sets, one after another. After all the pings are complete fpingd takes the results and updates the NMIS event table, when that is complete NMIS escalations are run and then the daemon will sleep for fastping_sleep + a random value between 0 and 10.
fastping_timeout is an important configuration variable when investigating ping loss, as any ping value higher than this number will be considered loss, 300 ms may be too low if you have a high latency network and are experiencing high ping loss on nodes that appear pingable.
Here is a table of the config variable and what it controls, these are all set in Config.nmis where you can find the default values:
Configuration Variable | Default (if not set at all) | Controls | |
---|---|---|---|
fastping_timeout | 300 | Controls the -t setting for fping which is:
| |
fastping_packet | 56 | Controls the -b setting for fping which is:
If this is set to < 24 it will be set to 24. | |
fastping_retries | 3 | Controls the -r setting for fping which is:
| |
fastping_count | 3 | Controls the -C setting for fping which is:
| |
fastping_sleep | 60 | The number of seconds fpingd will sleep before running another ping cycle + random(10) | |
fastping_node_poll | 300 | The number of nodes to ping in one invocation of fping |