[Xymon] cpu rrd files not being generated

Jeremy Laidman jeremy at laidman.org
Thu May 27 05:38:34 CEST 2021


On Thu, 27 May 2021 at 03:16, Kris Springer <kspringer at innovateteam.com>
wrote:

> I added a new Windows host yesterday and I'm using XymonPSClient v2.41
> and data is coming into server encrypted over port 443.  All data seems
> to be coming in just fine, and disk/memory/tcp graphs were auto
> generated and work fine.  But the cpu graph did not generate.  I am
> receiving the cpu stats but the la.rrd file did not get created.  I
> cleared the hosts data and let everything auto generate again, but the
> same result occurred with no la.rrd file being created.  I added 7 more
> new hosts all using the same XymonPSClient over port 443 and the same
> missing cpu graphs occurred with all of them.


Firstly, RRD seems to need two consecutive samples to start outputting RRD
data in graphs. If it only gets one, it doesn't show the data in graphs. Or
something like that. Sometimes you need to give it a bit of time. If a
sample is rejected due to being non-contiguous, I'd expect to see a log
message in rrd-data.log or rrd-status.log (depending on the test).

Disk, memory and CPU all originally come from the client data message. So
if you're getting data for one of these, you should be getting for all of
these.

I've got other hosts
> using the same PSClient over 443 and they work just fine.  Any ideas?
>

Same exact version of XymonPSClient?

I've looked through all the xymon logs and found no errors.  Server
> reboot affected nothing.
>
> I added a new host using the same XymonPSClient but NOT sending the data
> encrypted, just using port 1984, and the cpu graph auto generated
> correctly.  Can anyone give me a clue?


Hmm, interesting. I can't think why that would change the behaviour. Unless
XymonPSClient behaves differently in this mode.

Check the client data for a working and a non-working host. Compare the
"[cpu]" sections and see if there are any discrepancies. You can do this
from the command line like so:

  $XYMON $XYMSRV "clientlog <hostname> section=cpu"

If the output of this command for the two hosts both look similar, there's
a good chance that the faulty host's message is being parsed correctly. The
status essentially looks for "load=NNNN%" where NNNN is one or more digits.
It also expects to see "CPU states" but that's not mandatory for a
successful data message to be created. If so, you should have a CPU status
message.

The RRD data parser looks at the status message contents. It essentially
looks for the first line to contain "up: " followed (at some point) by ",
load=NNNN%" (or load=NN or load=NN.NN for other OSes). Compare the CPU
status messages between the two hosts and see if there are any
discrepancies. You can do this from the command line like so:

  $XYMON $XYMSRV "xymondlog <hostname>.cpu"

If there is no difference in the structure of these messages, then both
should be correctly handled by the RRD parser and the la.rrd file should be
created. If this doesn't show any problems, but the la.rrd file still isn't
being updated (double-check using "rrdtool fetch <filename> AVERAGE | tail"
or similar), then you might need to run xymond_rrd with the "--debug" flag,
and look for helpful output in rrd-status.log.

Cheers
Jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20210527/96de2111/attachment.htm>


More information about the Xymon mailing list