Xymon Mailing List Archive search

cpu rrd files not being generated

list Jeremy Laidman
Thu, 27 May 2021 13:38:34 +1000
Message-Id: <CACO=ejyLJSdF438wRcOD0S-gG51JXB=user-94da8c24ead9@xymon.invalid>

On Thu, 27 May 2021 at 03:16, Kris Springer <user-c2caa0a7a8d5@xymon.invalid>
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