[bind10-dev] How to have a pleasant conversation with the administrator about life, the universe, and everything, OR The Problem of the Unused SQL Column
Stephen Morris
stephen at isc.org
Fri Oct 15 09:06:38 UTC 2010
On 14 Oct 2010, at 13:32, Shane Kerr wrote:
> What I we may want is a way for a module to indicate that it wants some
> administrator action. The way that this information actually gets to the
> administrator can vary; the bindctl can display a message when it starts
> up, or it can appear in syslog (perhaps repeated each day?), or we can
> create a module which sends a status e-mail periodically about how the
> server is running.
>
> This is a bit like logging, but I think also perhaps different. I
> consider it a bit like your operating system reminding you with a little
> icon that it is time to reboot after applying security patches.
I see two ways of doing this:
(a) the module sets a flag that is polled by some monitor to see if action is required, at which point the monitor alerts the operator.
(b) a monitor looks at messages coming from the modules and takes action if it sees specific messages.
Option (b) appears to be the simplest, especially if we were to reserve a facility or severity code for such a message. In a number of Unix variants we would get this functionality for free: many variants allow you to set up syslog to write a message to all (or some) logged on users depending on facility and/or severity. Some variants allow you to route messages to named pipe to which you could can attach a program of your choice.
In addition, many sites will have their own solutions for monitoring the logs. For example Nominet uses Nagios (http://www.nagios.org), an industry-standard package for monitoring systems. They use a plugin (http://labs.consol.de/lang/en/nagios/check_logfiles) that scans the logfiles for specific patterns and sends alerts for specific messages. (This is how OpenDNSSEC is monitored.)
Having said that, interception via syslog is perhaps not the most flexible option. How about we have a logging process to which all modules send their log messages? By default that process would simply pass the messages on to syslog. But it could call out to user-written functions, which would examine the messages and take appropriate action. We could supply a selection of these callouts with the code (e.g. send mail).
As an afterthought, this model would be useful on Windows - the logging process could also be responsible for an icon on the task bar that highlights when operator attention is needed (or could send the message to the process that is).
Stephen
More information about the bind10-dev
mailing list