Oxidized in a distributed LibreNMS setup

Hi, i have a distributed poller setup with one ‘master’ Libre and several ‘slave’ Libres.
The master lives in our datacenter and then there is one slave Libre per client.
This all works well, but we are now wanting to include Oxidized in this setup.

So far i have come to realise that Oxidized is not distributed aware and i’m struggling to realise a setup that essentially is distributed aware.

Looking at Oxidized i have created groups for my devices, one group for each client, with the idea being that the slave Libre for Client-A (that polls all devices that belong to Client-A) also uses Oxidized to pull configs of all devices that belong to Client-A.

When i run the API call from the command line of the slave Libre for Client-A (curl -H ‘X-Auth-Token: YOURAPITOKENHERE’ https://librenms.org/api/v0/oxidized) then i get a list of all devices that are in Libre, also from other clients.
I’m aware that there is an option for config.php to ignore_types or ignore_os, but is there a way to only show devices form a certain group? For example, something like this would be very nice: $config[‘oxidized’][‘include_groups’] = array(‘Client-A’);

Thanks for any hints and tips!

I suppose it boils down to a few questions:

  1. Is it correct that Oxidized on a distributed poller is in fact NOT distributed aware?
  2. Can Oxidized on a distributed poller be made distributed aware? Perhaps an update to the API can realise this?
  3. For the time being, is there a workaround to solve this?

Thanks again!

I’m not quite sure, but i think Oxidized does not support distributed setup.
Imo you can reach your goal with itermidiate REST API orchestrator which will distribute your rest gets/puts etc from LibreNMS to multiple Oxidized standalone nodes.

Hi Johnny,

I am facing the same problem as yours. I have a LibreNMS Central Server (master) on Azure, and we have Pollers (slave) at clients’ site. All pollers links to the Central server over Fortigate SSL VPN.

I am trying setup Oxidized on each pollers, and then integrating Oxidized (from remote pollers) with the Azure Central server.

In Librenms config.php, we need to setup URL:
$config[‘oxidized’][‘url’] = ‘http://Oxidized IPs:8888’;

But how do I setup multiple URLs on Central Server’s config.php? Because I have Oxidized on each remote poller

Thanks :slight_smile:

Jeff Deng