Skip to content

Partitioned Polling

Enterprise Feature

This is a feature which is currently only included in the Enterprise Edition of Observium. Support for this feature can be obtained on our Discord server.

Poller partitioning allows the distribution of polling and discovery functions to across servers to fit with topology and other requirements. This is similar to Distributed Polling and shares most of the same setup procedure, but is used to create polling "islands" for more complex scenarios.

A partitioned poller is a poller server that has a distinct identity and can have devices assigned to it, and will automatically have any devices added or discovered by it assigned to it. This is useful if your central Observium poller doesn't have connectivity to the devices to be monitored.

Each partitioned poller requires access to the MySQL database and RRD files on the main Observium system. Access to RRDs can be achieved either by using remote filesystem mounting or by using remote rrdcached. MySQL access is achieved by allowing the partitioned poller access to the primary Observium database.

Distributed and Paritioned Pollers

Setup Steps

Remote Polling

Follow the Distributed Polling guide to set up and test remote MySQL and RRDcached connections.

VPN and SSH Tunnelling

You can use VPNs, persistent SSH connections with port-forwarding via autossh and other tunnelling methods to forward the MySQL and RRDcached connections across the open Internet.

Configure

We need to modify the config.php to tell Observium that it's running as a partioned poller. This is achieved with a $config['poller_name'] entry.

For example, to configure a node to be part of a partition called site-b, you would set this as the poller_name. If no entry exists for this partition, it is created.

$config['poller_name'] = "site-b";

You can test this is working by running ./observium-wrapper poller -t to test what devices would be polled. The relevant parts of the output are below.

INFO: This is poller_id (12) using poller-restricted devices list
WHERE disabled != 1 AND poller_id = '12'
SELECT   device_id
                   FROM     devices
                   WHERE disabled != 1 AND poller_id = '12' ORDER BY last_polled_timetaken DESC
[779, 826]

You can see that this is poller_id 12, the ID for the configured poller_name. The SELECT statement is correctly using poller_id in the WHERE clause, and it returns the two devices assigned to this partition, 779 and 826.

Device can be assigned to the partition from the Device Settings tab in the device's properties in Observium.

Set device poller partition

If you are setting up Distributed pollers in a partition, you can also follow the Distribution Configuration section of the Distributed Poller setup guide to configure the required settings.

Handling Syslog

If you're using Observium as a syslog reciever, you should configure one poller node in each partition following our Syslog Integration documentation, and configure relevant devices to forward their syslog to this node.