Xymon Mailing List Archive search

Quirky behavior

list Ralph Mitchell
Wed, 29 Oct 2014 14:48:13 -0400
Message-Id: <CAAEjoCXFO=user-7658b9f9e268@xymon.invalid>

In xymon-4.3.12 it sends the client-local block for the hostname, if it is
defined OR the block for the OS, correct?? Not a blend of the two, with
host-specific entries overriding the generic entries, right??

Does that change in a later release? I need a better way to manage it...

Ralph Mitchell
On Oct 27, 2014 9:11 PM, "Jeremy Laidman" <user-71895fb2e44c@xymon.invalid> wrote:
On 28 October 2014 08:45, Gregory J. DeCecco <user-e65d382d9698@xymon.invalid> wrote:
Is this the expected behavior?

Yes - if you know what to expect!  ;-)

One of the major performance improvements that Xymon has over its
predecessor BigBrother, is that it keeps state in memory, and doesn't have
to re-read its configuration files every 5 minutes.  In some cases, this
means that changes are not visible immediately, and require either a bit of
time to pass, or an action to take place.  This is the case for many
configuration files used by Xymon.

  I can see how this behavior would get in the way of architecting and
rapid testing of a client-local.cfg file with multiple OSType, HostClass,
and Hostname entries.

The contents of the file client-local.cfg is held in memory by xymond, and
is not updated unless xymond detects a change.  The xymond process can be
given a HUP signal to tell it to re-check all of its configuration files
for changes, and reload details as required.

You might find this sequence useful:

On the Xymon server:

1. Create a new entry for server01 in hosts.cfg

2. Send xymond a HUP signal:

  sudo -u xymon pkill -HUP xymond$

3. Run: xymon 127.0.0.1 "hostinfo host=server01 fields=XMH_CLASS,XMH_OS"

This shows the in-memory values for class and OS that xymond uses.  As
there has never been a client message, the values will be empty.

4. Run:
  a) xymon 127.0.0.1 "client server01.bogos bogos"
  b) xymon 127.0.0.1 "hostinfo host=server01 fields=XMH_CLASS,XMH_OS"

This will show "bogos|bogos".  Note that the "client" message gets nothing
from client-local.cfg.

5. Run:
  a) xymon 127.0.0.1 "client server01.win128 win128"
  b) xymon 127.0.0.1 "hostinfo host=server01 fields=XMH_CLASS,XMH_OS"

This will show "bogos|win128".  Also, no output from client-local.cfg, but
if there were an entry for [bogos] or [win128] it would have shown
something, with preference given to [bogos].

6. Run:
  a) touch hosts.cfg
  b) sudo -u xymon pkill -HUP xymond$
  c) xymon 127.0.0.1 "hostinfo host=server01 fields=XMH_CLASS,XMH_OS"

This will show "|" - that is, no values.

7. Run:
  a) xymon 127.0.0.1 "client server01.win16 win16"
  b) xymon 127.0.0.1 "hostinfo host=server01 fields=XMH_CLASS,XMH_OS"

This will show "win16|win16".

8. Run:
  a) xymon 127.0.0.1 "client server01.aix bogos"

This should give the [aix] section of client-local.cfg.

HTH

J