Remote poller slave

I would like to see a remote poller be available. If I were to imagine what it would be like it would be something like this…

Setup would be exactly the same as the full LNMS install. It would have a local database and local RRD files.
The difference is that it would be configured as a slave. I see it only doing the polling of devices. I dont see it initially doing discovery jobs (but I guess it is possible). So the only cron job that would run would be the poller one. The poller job would collect the data and save it locally on the slave.

There would be a new process that runs on the master LNMS server. This job would effectively poll the slave and do the following:

  1. Modify the slave DB devices list - adding or deleting devices as appropriate - the only devices that should exist on the slave DB are ones that the slave needs to poll
  2. There are other tables that the slave would need for the polling process - keep them syncronized from the master - for example the alert rules
  3. Reconcile any database changes done by the slave to existing devices - for example device status, versions, etc - there are some changes that may happen on the master for example changing the override sysContact…
  4. For the RRD files that were created on the slave we need to somehow copy/rsync/whatever the files back to the master

I am not sure how #3 would be done as I think it is the most difficult. Some ideas are creating a federated database where the master can simply read/write to the slave DB. Or perhaps a PHP script that will pull/push the data.

Hello @towster! Have you taken a look at http://docs.librenms.org/Extensions/Distributed-Poller/?

If that doesn’t meet your needs, I’d be interested in how your requirements differ. Hopefully it helps!