ICMP Alerts

Hello, I am new on Librenms and I would like to ask for some help regarding devices up/down alerts due to icmp. In my case, we have a network of up to 2000 devices, and I am trying to setup an alert to only trigger when a device is down due to icmp reasons.

To summarize it, I will expose an example of one of multiple icmp alerts performed. This one is concerning devices located in

As we can see, in this sub-network we have 21 devices to check. In addition, I just want to receive 1 mail per alert and I have set a delay of 7 min in order to cut down on possible fast up/down alerts.

Talking about fping, here is where I coped with more issues because Fast ping-checks does not work as I expected and I think that I do not understand completely.

I set ping_rrd_step
$config[‘ping_rrd_step’] = 60;

,updated the rrd files
./scripts/rrdstep.php -h all

and also the cron:
* * * * * librenms /opt/librenms/ping.php >> /dev/null 2>&1

Finally, I update the config.php:

$config['fping'] = "/usr/sbin/fping";
$config['fping_options']['timeout'] = 500;
$config['fping_options']['count']   = 5;
$config['fping_options']['interval'] = 500;

Above, there are described my fping timeout, count and interval settings as well as my ping check status step. With above settings, I suppose that I send 5 icmp packets to each device with an interval between packets of 500ms and the server waits 1 minute to check if the device is up/down. Then, it waits 7 minutes to send the alert due to the delay. However, I have a high amount of false alerts and I would like to know a few more things about fping to reduce them:

  1. How often fping sends the burst of icmp packets (5 in my case)? I mean the time between the last icmp packet of a burst and the first one of the next one.
  2. If one of these 5 icmp packets is unreachable, the device is considered unreachable? If not, when is considered unreachable?
  3. Fping sends burst of icmp packets simultaneously to all devices?

I hope you can help me to solve these questions. I look forward to your answers.

Thank you,


Would I be right in assuming that you have distributed pollers for that amount of hosts, or are you running a single server?

If you have distrigubted pollers then you need to add the -g option to the ping, i.e.

* *  * * *    librenms    /opt/librenms/ping.php -g POLLERGROUPNO >> /dev/null 2>&1

If you only have one poller than it may be down to high load on the lnms server.

Hi, I am just running a single server, that’s my issue. If I would launch three different servers: one for nginx, one for Mariadb config and the last for distributed pollers, do you know how I would do that?

Take a look to the distributed poller docs https://docs.librenms.org/Extensions/Distributed-Poller/

Also to the performance one https://docs.librenms.org/Support/Performance/

I have reviewed all these documents and more or less I have an idea of how to sort it. However, I have a question regarding Memcached and pollers configuration.

Talking about Memcached, I will setup Web/Api with RRDCached in one server and the MariaDB in another one. It is recommended to launch the Memcached with the MariaDB or with the RRDCached? I think that it doesn’t matter where I setup it while all pollers have access.

Talking about pollers, I want to setup 4 pollers for my network.

  • Two pollers for group 0 (one to discover and poller and the other just to poll).
  • One poller for group 1 (discover and poller).
  • One poller for group 2 (discover and poller).

In the example commented in the docs, it uses a sever for each poller. I would like to know if I can install all 4 pollers in one server or if I have to setup a server for each poller.

Thank you,

Having more than one poller in the same server (or vm) has no sense. When you use distritubed pollers, its for balance the load. If you put them all in the same server, load is not balanced at all.

TIP: The more common bottle-neck is the disk write, so rrdcached and mysql servers must have a very good storage.

Take a look to https://docs.librenms.org/Support/Example-Hardware-Setup/ for some examples.

Thank you very much for your answer. I will review it.