NetBSD/dist/ntp/scripts/monitoring/README

159 lines
5.4 KiB
Plaintext

This directory contains support for monitoring the local clock of xntp daemons.
WARNING: The scripts and routines contained in this directory are beta
release! Do not depend on their correct operation. They are,
however, in regular use at University of Erlangen-Nuernberg.
No severe problems are known for this code.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PLEASE THINK TWICE BEFORE STARTING MONITORING REMOTE XNTP DEAMONS !!!!
MONITORING MAY INCREASE THE LOAD OF THE DEAMON MONITORED AND MAY
INCREASE THE NETWORK LOAD SIGNIFICANTLY
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Files are:
README:
This file
ntptrap:
perl script to log ntp mode 6 trap messages.
It sends a set_trap request to each server given and dumps the
trap messages received. It handles refresh of set_trap.
Currently it handles only NTP V2, however the NTP V3 servers
also accept v2 requests. It will not interpret v3 system and
peer stati correctly.
usage:
ntptrap [-n] [-p <port>] [-l <debug-output>] servers...
-n: do not send set_trap requests
port: port to listen for responses
useful if you have a configured trap
debug-output: file to write trace output to (for debugging)
This script convinced me that ntp trap messages are only of
little use.
ntploopstat:
perl script to gather loop info statistics from xntpd via mode 7
LOOP_INFO requests.
This script collects data to allow monitoring of remote xntp servers
where it is not possible to directly access the loopstats file
produced by xntpd itself. Of course, it can be used to sample
a local server if it is not configured to produce a loopstats file.
Please note, this program poses a high load on the server as
a communication takes place every delay seconds ! USE WITH CARE !
usage:
ntploopstat [-d<delay>] [-t<timeout>] [-l <logfile>] [-v] [ntpserver]
delay: number of seconds to wait between samples
default: 60 seconds
timeout: number of seconds to wait for reply
default 12 seconds
logfile: file to log samples to
default: loopstats:<ntpserver>:
(note the trailing colon)
This name actually is a prefix.
The file name is dynamically derived by appending
the name of the month the sample belongs to.
Thus all samples of a month end up in the same file.
the format of the files generated is identical to the format used by
xntpd with the loopstats file:
MJD <seconds since midnight UTC> offset frequency compliance
if a timeout occurs the next sample is tried after delay/2 seconds
The script will terminate after MAX_FAIL (currently 60)
consecutive errors.
Errors are counted for:
- error on send call
- error on select call
- error on recv call
- short packet received
- bad packet
- error on open for logfile
ntploopwatch:
perl script to display loop filter statistics collected by ntploopstat
or dumped directly by xntpd.
Gnuplot is used to produce a graphical representation of the sample
values, that have been preprocessed and analysed by this script.
It can either be called to produce a printout of specific data set or
used to continously monitor the values. Monitoring is achieved by
periodically reprocessing the logfiles, which are updated regularly
either by a running ntploopstat process or by the running xntpd.
usage:
to watch statistics permanently:
ntploopwatch [-v[<level>]] [-c <config-file>] [-d <working-dir>]
to get a single print out specify also
-P<printer> [-s<samples>]
[-S <start-time>] [-E <end-time>]
[-O <MaxOffs>] [-o <MinOffs>]
level: level of verbosity for debugging
config-file: file to read configurable settings from
On each iteration it is checked and reread
if it has been changed
default: loopwatch.config
working-dir: specify working directory for process, affects
interpretation of relative file names
All other flags are only useful with printing plots, as otherwise
command line values would be replaced by settings from the config file.
printer: specify printer to print plot
BSD print systems semantics apply; if printer
is omitted the name "ps" is used; plots are
prepared using PostScript, thus the printer
should best accept postscript input
For the following see also the comments in loopwatch.config.SAMPLE
samples: use last # samples from input data
start-time: ignore input samples before this date
end-time: ignore input samples after this date
if both start-time and end-time are specified
a given samples value is ignored
MaxOffs:
MinOffs: restrict value range
loopwatch.config.SAMPLE:
sample config file for ntploopwatch
each configurable option is explained there
lr.pl:
linear regression package used by ntploopwatch to compute
linear approximations for frequency and offset values
within display range
timelocal.pl:
used during conversion of ISO_DATE_TIME values specified in
loopwatch config files to unix epoch values (seconds since
1970-01-01_00:00_00 UTC)
A version of this file is distributed with perl-4.x, however,
it has a bug related to dates crossing 1970, causing endless loops..
The version contained here has been fixed.
ntp.pl:
perl support for ntp v2 mode 6 message handling
WARNING: This code is beta level - it triggers a memory leak;
as for now it is not quite clear, wether this is caused by a
bug in perl or by bad usage of perl within this script.