[mrtg] "rrdupdate" on load-balancing cluster

Kristoff Bonne kristoff.bonne at skypro.be
Mon Jan 25 15:03:32 CET 2010


We are running a couple of servers running "mrtg" on a large number of
devices (+20000 rrd files in total), used for both "mrtg" (14all) and
"weathermap" applications.

I'm thinking of trying to implement the concept of a computer-cluster
for this to make this more robust and future-proof.

The basic idea would be to "seperate" the three different elements of

- First, a number of "polling" boxes would gather the information from
the network-elements.

- After that, these boxes  would fire up a "rrd-update" command to a
number of "rrd-servers" which would contain the rrd-files.

- The RRD-files would then be made available to the "web-frontend"
(running 14all and weathermap), probably via NFS.

Two questions:

1: I do not think I will be the first person to think of this.

Is anybody aware of any implementations like this?
Does there exist a client-server version of the "rrd-tools"?

2: Looking in the librrd API documenation, I found this troublesome
remark concerning threads:

 /* NOTE: rrd_update_r are only thread-safe if no at-style time
    specifications get used!!! */

What exactly does this mean?

If I want to write a "rrdupdate-deamon" myself, it needs to run in
threads-mode and it must use be able to use timestamps!

Does this mean that this is completely impossible, or are there ways
around this.

If I would add a piece of code that implements a MUTEX based on the
file-name of the rrd-file being updated, would this be enough to support
rrd-updates with timestamp?

Cheerio! Kr. Bonne.

More information about the mrtg mailing list