[collectd] bind9 nameserver plugin?

Claus Herwig lists at checon.de
Tue May 9 19:42:01 CEST 2006

Hi Florian,

> oops, I meant `rndc stats'.. This will cause bind to write the 
> `statistics file' which incldes the following keys: success,
> referral, nxrrset, nxdomain, recursion, failure

um, I didn't know about this one :) Seems like it gives nice counters
for success/failure/recursion, so the result would be some kind of
different graph than the one I proposed.

Unfortunately you'd have to do a "rndc stats" every minute or so,
because bind doesn't write the file automatically. And it seems that
every stats record can contain a different amount of lines, depending on
your views/zones configuration. Bind ARM says:

> Following that line are a series of lines containing a counter type,
> the value of the counter, optionally a zone name, and optionally a
> view name. The lines without view and zone listed are global
> statistics for the entire server.

> That's a clever idea.. Not as straight forward as the `mysql' plugin 
> (simply connect and read the values ;), but still the best idea I've 
> heard regarding bind statistics..

don't know how collectd works internally, but of course you could simply
stay connected to the fifo...

> No idea.. The only value I found was `PIPE_BUF' which is the size
> that can be written to the pipe atomically. My guess is that there's
> no hard limit.

> If `syslogd' tries to open the pipe non-blocking and noone has opened
>  the pipe for reading, the open returns with `errno' set to ENXIO. 
> syslogd should be prepared for this. If collectd exists after a while
>  and the reader detaches, the next write (to the still open fd) will 
> generate a `SIGPIPE' signal. syslog should be prepared for this, too.

hmm, I'm not sure of this, as I made a quick test: Just make the fifo as
I wrote, connect to it with cat, disconnect after a few lines. Then wait
10 minutes and connect again - and you'll get the whole backlog of 10
minutes syslogd querylog entries, which are about 3 MByte in my case.
Don't know where this buffer is stored internally. And what happens if
you wait 1 day instead of 10 minutes...

So I just fear, syslogd (or the fifo) could consume lots of memory, if
for some reason collectd don't connect to the fifo for a longer time.
All I could find about this is a short remark in the syslog readme:

> When logging into a fifo syslogd will stop loggin into this
> logfile if no process is reading it an thus the buffer is filled
> up. Buffer size can be adjusted through the kernel.

Thats a litte bit contradicting my test results :)

> P.S.: Nice graph ;) I want one of those, too ;)

err, yes, supported *g*


CHECON   EDV-Consulting und Redaktion
         Claus Herwig * Barer Straße 70 * 80799 München
         +49 89 27826981 * Fax 27826982 * c.herwig at checon.de

More information about the collectd mailing list