M O N S T E R 1.12 94/03/22 Monitoring Station and Error Reporter Prerequisites: ============== SNMP-capable gawk ISODE 6.0 gawk (a sparc binary is in ftp.ripe.net:tools/monster) gnuplot (only if you want to plot) Installation Procedure: ======================= o choose the following files and directories CONFIG all dynamic configuration information BINDIR directory for all binaries and scripts POLLDIR spool directory for raw data from polls PLOTDIR directory for plots EVDIR directory for event logs o install prerequisites somewhere in usual search path or preferably in bindir The SNMP-capable gawk should be named snmp-gawk! o pipe distribution kit thru /bin/sh in an empty directory o make manual pages by "make man.lpr" o read the manual pages mst-poll(1) and mst-poll.cf(5) o configure CONFIG and BINDIR in Makefile o make o configure mst-poll.cf according to local situation You can make a template using mst-mkconf. o try mst-poll -c mst-poll.cf and see if the output makes sense regarding the manpage mst-poll.out(5) o make install (does not install manpages) o call mst-poll regularly from cron o try the analysis programs Changes in latest version 1.12: =============================== + no changes, development and support by myself ends here Changes latest version 1.11: =============================== + fix plotting for longer periods to look better + document -d option (blush!) Changes in version 1.10: ======================= + new filter mst-shrink to shrink pollfiles by eliminating samples + add a -d option to plot routines to allow plotting more than one day's worth of info Best results are obtained by plotting hourly samples in weekly pots and four-hourly samples in monthly plots. More experimentation is needed here. Changes in version 1.9: ======================= + added static configuration for CONFIG and BINDIR + added dynamic configuration of spool directories in mst-poll.cf + removed length restriction on interface names + plot output works with more Gnuplot versions than 2.0 thanks to Jan van der Steen, CWI + mst-mkconf made nicer bigger and more creeping featurism :-) + "mst-plotrun" has been replaced by "mst-plot -r" + "mst-delta" has been renamed "mst-events" + "mst-events" has a daemon function added Cautions: ========= CISCO ----- SNMP implementations on CISCO use a wrong integer encoding causing values >2^31 to be reported as 0. This has been brought to the attention of cisco. To circumvent you can use the following patch to the snmp capable gawk. It applies to isode/snmp/syntax.c: *** syntax.c Thu Nov 14 13:30:45 1991 --- syntax.c.new Wed Apr 17 10:37:19 1991 *************** *** 554,561 **** return pe_seterr (pe, PE_ERR_OVER, 0); if (pe -> pe_len == sizeof (i) + 1 && (*dp & 0x7f)) return pe_seterr (pe, PE_ERR_OVER, 0); - if (*dp & 0x80) - return pe_seterr (pe, PE_ERR_SIGNED, 0); pe -> pe_errno = PE_ERR_NONE; /* in case result is ZERO-valued */ i = 0L; --- 554,559 ---- SNMP Capable gawk ----------------- For the -u flag and the daemon functions of mst-events to work you need the following patch to main.c of the snmp capable gawk: *** main.c.orig Mon Nov 18 11:27:44 1991 --- main.c Mon Nov 18 11:36:39 1991 *************** *** 82,87 **** --- 82,88 ---- int numfiles = -1; /* how many source files */ int strict = 0; /* turn off gnu extensions */ + int unbuf = 0; /* stdout unbuffered */ int output_is_tty = 0; /* control flushing of output */ *************** *** 95,107 **** #define EXTENSIONS 8 /* where to clear */ #ifdef DEBUG #ifndef SNMP ! char awk_opts[] = "F:f:v:caeCVdD"; #else ! char awk_opts[] = "F:f:v:caeCVdDsS"; extern int debug; #endif #else ! char awk_opts[] = "F:f:v:caeCV"; #endif int --- 96,108 ---- #define EXTENSIONS 8 /* where to clear */ #ifdef DEBUG #ifndef SNMP ! char awk_opts[] = "F:f:v:caeCVdDu"; #else ! char awk_opts[] = "F:f:v:caeCVdDsSu"; extern int debug; #endif #else ! char awk_opts[] = "F:f:v:caeCVu"; #endif int *************** *** 246,251 **** --- 247,256 ---- regex_mode = RE_SYNTAX_POSIX_EGREP; break; + case 'u': + unbuf = 1; + break; + case '?': default: /* getopt will print a message for us */ *************** *** 260,265 **** --- 265,272 ---- #ifdef DEBUG setbuf(stdout, (char *) NULL); /* make debugging easier */ #endif + if (unbuf) + setbuf(stdout, (char *) NULL); if (isatty(fileno(stdout))) output_is_tty = 1; /* No -f option, use next arg */