diff options
32 files changed, 5215 insertions, 0 deletions
diff --git a/abs/mv-core/hobbitmon/PKGBUILD b/abs/mv-core/hobbitmon/PKGBUILD new file mode 100755 index 0000000..592392d --- /dev/null +++ b/abs/mv-core/hobbitmon/PKGBUILD @@ -0,0 +1,84 @@ +pkgname=hobbitserver +provides=hobbit +pkgver=4.2.0 +pkgrel=98 +pkgdesc="Hobbit is a system for monitoring servers and networks. " +license="GPL" +arch=('i686') + +url="http://hobbitmon.sourceforge.net/" +source=(http://voxel.dl.sourceforge.net/sourceforge/hobbitmon/hobbit-4.2.0.tar.gz  hobbitadd.py hobbitcheck.sh hobbitgraph.cfg.diff hobbitserver.cfg.diff hobbitlaunch.cfg.diff clientlaunch.cfg.diff hobbitstorage.py  hbnotes.py hobbit-myth-orphan.sh hobbit-clients.cfg hbfunc.py be.png tuner.png tv.png  hobbit-mem-myth.sh hobbit_notify.sh hobbit-alerts.cfg hobbit_myth_data.py) +depends="rrdtool fping pcre python graphviz" +install=hobbit.install + +build() { +cd $startdir/src/hobbit-$pkgver +ENABLESSL=n \ +ENABLELDAP=n \ +ENABLELDAPSSL=n \ +BBUSER=nobody \ +BBTOPDIR=/data/srv/hobbit \ +BBVAR=/data/srv/hobbit/var \ +BBHOSTURL=/hobbit \ +CGIDIR=/data/srv/httpd/htdocs/hobbit/hobbit-cgi \ +BBCGIURL=/hobbit/hobbit-cgi \ +SECURECGIDIR=/data/srv/httpd/htdocs/hobbit/hobbit-seccgi \ +SECUREBBCGIURL=/hobbit/hobbit-seccgi \ +HTTPDGID=nobody \ +BBLOGDIR=/var/log/hobbit \ +BBHOSTNAME=localhost \ +BBHOSTIP=127.0.0.1 \ +MANROOT=/usr/share/man \ +BARS=all \ +USENEWHIST=y \ +PIXELCOUNT=960 \ +INSTALLBINDIR=/data/srv/hobbit/server/bin \ +INSTALLETCDIR=/data/srv/hobbit/etc \ +INSTALLWEBDIR=/data/srv/hobbit/web \ +INSTALLEXTDIR=/data/srv/hobbit/server/ext \ +INSTALLTMPDIR=/data/srv/hobbit/tmp \ +INSTALLWWWDIR=/data/srv/httpd/htdocs/hobbit/ \ +USERFPING=/usr/sbin/fping \ +./configure +	make PKGBUILD=1|| return 1 +	make PKGBUILD=1 INSTALLROOT=$startdir/pkg install + +cd $startdir/src +cp $startdir/src/hobbitadd.py  $startdir/pkg/data/srv/hobbit/server/bin/ +install -D -m755 $startdir/src/hobbitstorage.py  $startdir/pkg/data/srv/hobbit/server/ext/hobbitstorage.py +install -D -m755 $startdir/src/hobbit-myth-orphan.sh $startdir/pkg/data/srv/hobbit/server/ext/hobbit-myth-orphan.sh +install -D -m755 $startdir/src/hbfunc.py $startdir/pkg/data/srv/hobbit/server/ext/hbfunc.py +install -D -m755 $startdir/src/hbnotes.py $startdir/pkg/data/srv/hobbit/server/ext/hbnotes.py +    install -D -m755 $startdir/src/hobbit_myth_data.py $startdir/pkg/data/srv/hobbit/server/ext/hobbit_myth_data.py +install -D -m755 $startdir/src/hobbit-mem-myth.sh $startdir/pkg/data/srv/hobbit/server/ext/hobbit-mem-myth.sh +install -D -m755  hobbitcheck.sh $startdir/pkg/etc/cron.tenminutes/hobbitcheck.sh +install  -m755 hobbit-clients.cfg $startdir/pkg/data/srv/hobbit/etc/hobbit-clients.cfg +install  -m755 hobbit-alerts.cfg $startdir/pkg/data/srv/hobbit/etc/hobbit-alerts.cfg +install  -m755 hobbit_notify.sh $startdir/pkg/data/srv/hobbit/server/bin/hobbit_notify.sh + +install  -m755 $startdir/src/tv.png  $startdir/pkg/data/srv/httpd/htdocs/hobbit/gifs/tv.png +install  -m755 $startdir/src/tuner.png  $startdir/pkg/data/srv/httpd/htdocs/hobbit/gifs/tuner.png +install  -m755 $startdir/src/be.png  $startdir/pkg/data/srv/httpd/htdocs/hobbit/gifs/be.png + + +#apply patches to conf file + +cd $startdir/pkg/data/srv/hobbit/etc +patch -p0 <  $startdir/src/hobbitgraph.cfg.diff +patch -p0 <  $startdir/src/hobbitserver.cfg.diff +patch -p0 <  $startdir/src/hobbitlaunch.cfg.diff + + +cd - +cd $startdir/pkg/data/srv/hobbit/client/etc +patch -p0 <  $startdir/src/clientlaunch.cfg.diff +cd - + + + +#create client package as well +install -D -m755 $startdir/src/hobbit-mem-myth.sh $startdir/pkg/data/srv/hobbit/client/ext/hobbit-mem-myth.sh +cp -rp /$startdir/pkg/data/srv/hobbit/client $startdir/../hobbit-client + +} + diff --git a/abs/mv-core/hobbitmon/be.png b/abs/mv-core/hobbitmon/be.png Binary files differnew file mode 100644 index 0000000..2267cab --- /dev/null +++ b/abs/mv-core/hobbitmon/be.png diff --git a/abs/mv-core/hobbitmon/clientlaunch.cfg.diff b/abs/mv-core/hobbitmon/clientlaunch.cfg.diff new file mode 100644 index 0000000..76bb678 --- /dev/null +++ b/abs/mv-core/hobbitmon/clientlaunch.cfg.diff @@ -0,0 +1,12 @@ +--- clientlaunch.cfg.orig	2008-01-08 09:24:06.000000000 -0600 ++++ clientlaunch.cfg	2008-01-08 10:17:26.000000000 -0600 +@@ -35,3 +35,9 @@ + 	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log + 	INTERVAL 5m +  ++[memmyth] ++	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg ++       CMD  /data/srv/hobbit/client/ext/hobbit-mem-myth.sh ++       LOGFILE /data/srv/hobbit/client/mythmem.log ++       INTERVAL 5m ++ diff --git a/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg new file mode 100644 index 0000000..8457a8f --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg @@ -0,0 +1,43 @@ +# +# The clientlaunch.cfg file is loaded by "hobbitlaunch". +# It controls which of the Hobbit client-side modules to run,  +# (both the main client "hobbitclient.sh" and any client-side +# extensions); how often, and with which parameters, options  +# and environment variables. +# +# Note: On the Hobbit *server* itself, this file is normally  +#       NOT used. Instead, both the client- and server-tasks +#       are controlled by the hobbitlaunch.cfg file. +# + +# msgcache is used for passive clients, that cannot connect +# directly to the Hobbit server. This is not the default +# setup, so this task is normally disabled. +[msgcache] +	DISABLED +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/msgcache --no-daemon --pidfile=$HOBBITCLIENTHOME/logs/msgcache.pid +	LOGFILE $HOBBITCLIENTHOME/logs/msgcache.log + +# The main client task +[client] +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/hobbitclient.sh  +	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log +	INTERVAL 5m + +# ORCA data collector. This is an experimental add-on module, +# the data sent by this module are not processed by Hobbit 4.2. +[orcadata] +	DISABLED +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/orcahobbit --orca=/usr/local/orca/orcallator +	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log +	INTERVAL 5m + +[memmyth] +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +       CMD  /data/srv/hobbit/client/ext/hobbit-mem-myth.sh +       LOGFILE /data/srv/hobbit/client/mythmem.log +       INTERVAL 5m + diff --git a/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.diff b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.diff new file mode 100644 index 0000000..76bb678 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.diff @@ -0,0 +1,12 @@ +--- clientlaunch.cfg.orig	2008-01-08 09:24:06.000000000 -0600 ++++ clientlaunch.cfg	2008-01-08 10:17:26.000000000 -0600 +@@ -35,3 +35,9 @@ + 	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log + 	INTERVAL 5m +  ++[memmyth] ++	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg ++       CMD  /data/srv/hobbit/client/ext/hobbit-mem-myth.sh ++       LOGFILE /data/srv/hobbit/client/mythmem.log ++       INTERVAL 5m ++ diff --git a/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.orig b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.orig new file mode 100644 index 0000000..cfda695 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/clientlaunch.cfg.orig @@ -0,0 +1,37 @@ +# +# The clientlaunch.cfg file is loaded by "hobbitlaunch". +# It controls which of the Hobbit client-side modules to run,  +# (both the main client "hobbitclient.sh" and any client-side +# extensions); how often, and with which parameters, options  +# and environment variables. +# +# Note: On the Hobbit *server* itself, this file is normally  +#       NOT used. Instead, both the client- and server-tasks +#       are controlled by the hobbitlaunch.cfg file. +# + +# msgcache is used for passive clients, that cannot connect +# directly to the Hobbit server. This is not the default +# setup, so this task is normally disabled. +[msgcache] +	DISABLED +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/msgcache --no-daemon --pidfile=$HOBBITCLIENTHOME/logs/msgcache.pid +	LOGFILE $HOBBITCLIENTHOME/logs/msgcache.log + +# The main client task +[client] +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/hobbitclient.sh  +	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log +	INTERVAL 5m + +# ORCA data collector. This is an experimental add-on module, +# the data sent by this module are not processed by Hobbit 4.2. +[orcadata] +	DISABLED +	ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg +	CMD $HOBBITCLIENTHOME/bin/orcahobbit --orca=/usr/local/orca/orcallator +	LOGFILE $HOBBITCLIENTHOME/logs/hobbitclient.log +	INTERVAL 5m + diff --git a/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg new file mode 100644 index 0000000..c11ee6c --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg @@ -0,0 +1,1173 @@ +# This file defines how RRD graphs are generated by the hobbitgraph CGI. +# +# Each section begins with a "[SERVICE]" indicator - this is the name passed +# to hobbitgraph.cgi?host=foo&service=SERVICE +# +# A graph has a TITLE and a YAXIS setting - these are texts shown as the +# title of the graph, and the YAXIS heading respectively. (The X-axis is +# always time-based). +# +# If a fixed set of RRD files are used for the graph, you just write those +# in the RRDtool definitions.  +# +# For graphs that use multiple RRD files as input, you specify a filename +# pattern in the FNPATTERN statement, and optionally a pattern of files +# to exclude from the graph with EXFNPATTERN (see "[tcp]" for an example). +# When FNPATTERN is used, you can use "@RRDFN@" in the RRDtool definitions +# to pick up each filename. "@RRDIDX@" is an index (starting at 0) for each +# file in the set. "@RRDPARAM@" contains the first word extracted from the +# pattern of files (see e.g. "[memory]" how this is used). "@COLOR@" picks +# a new color for each graph automatically. +# +# The remainder of the lines in each definition are passed directly to the +# RRDtool rrd_graph() routine. +# +# Most of these RRD definitions are from the larrd-grapher.cgi from LARRD 0.43c. + +[la] +	TITLE CPU Load +	YAXIS Load +	DEF:avg=la.rrd:la:AVERAGE +	CDEF:la=avg,100,/ +	AREA:la#00CC00:CPU Load Average +	-u 1.0 +	GPRINT:la:LAST: \: %5.1lf (cur) +	GPRINT:la:MAX: \: %5.1lf (max) +	GPRINT:la:MIN: \: %5.1lf (min) +	GPRINT:la:AVERAGE: \: %5.1lf (avg)\n + +[la-multi] +	TITLE Multi-host CPU Load +	YAXIS Load +	FNPATTERN la.rrd +	DEF:avg@RRDIDX@=@RRDFN@:la:AVERAGE +	CDEF:la@RRDIDX@=avg@RRDIDX@,100,/ +	LINE2:la@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 1.0 +	GPRINT:la@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:la@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:la@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:la@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[la1] +	TITLE CPU Utilitization +	YAXIS % Used +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	CDEF:pbusy=100,cpu_idl,- +	LINE2:pbusy#00CC00:% CPU busy +	GPRINT:pbusy:LAST: \: %5.1lf (cur) +	GPRINT:pbusy:MAX: \: %5.1lf (max) +	GPRINT:pbusy:MIN: \: %5.1lf (min) +	GPRINT:pbusy:AVERAGE: \: %5.1lf (avg)\n + +[la1-multi] +	TITLE Multi-host CPU Utilitization +	YAXIS % Used +	FNPATTERN vmstat.rrd +	-u 100 +	-r +	DEF:cpu_idl@RRDIDX@=@RRDFN@:cpu_idl:AVERAGE +	CDEF:pbusy@RRDIDX@=100,cpu_idl@RRDIDX@,- +	LINE2:pbusy@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:pbusy@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:pbusy@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:pbusy@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:pbusy@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[clock] +	TITLE Clock offset +	YAXIS Seconds +	DEF:offset=clock.rrd:la:AVERAGE +	LINE2:offset#00CC00:Seconds +	GPRINT:offset:LAST: \: %5.1lf (cur) +	GPRINT:offset:MAX: \: %5.1lf (max) +	GPRINT:offset:MIN: \: %5.1lf (min) +	GPRINT:offset:AVERAGE: \: %5.1lf (avg)\n + +[disk] +	FNPATTERN disk(.*).rrd +	TITLE Disk Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[disk1] +	FNPATTERN disk(.*).rrd +	TITLE Disk Utilization +	YAXIS Used +	DEF:p@RRDIDX@=@RRDFN@:used:AVERAGE +	CDEF:p@RRDIDX@t=p@RRDIDX@,1024,* +	LINE2:p@RRDIDX@t#@COLOR@:@RRDPARAM@ +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf KB (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf KB (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf KB (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf KB (avg)\n + +# The qtree graphs are based on the qtree report from filerstats2bb.pl +# These handle NetApp storage devices. +[qtree] +	FNPATTERN qtree(.+).rrd +	TITLE Qtree Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +# The qtree graphs are based on the inode report from filerstats2bb.pl +# These handle NetApp storage devices +# An enhanced disk script that just runs "df -i" could probably get the +# same data. +[inode] +	FNPATTERN inode(.+).rrd +	TITLE inode Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[memory] +	FNPATTERN memory.(.+).rrd +	TITLE Memory Utilization +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[ram] +	TITLE RAM Utilization +	YAXIS % Used +	DEF:p=memory.real.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% RAM used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[ram-multi] +	TITLE Multi-host RAM Utilization +	FNPATTERN memory.real.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[swap] +	TITLE Swap Utilization +	YAXIS % Used +	DEF:p=memory.swap.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% Swap used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[swap-multi] +	TITLE Multi-host Swap Utilization +	FNPATTERN memory.swap.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[mem] +	TITLE Actual Memory Utilization +	YAXIS % Used +	DEF:p=memory.actual.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% Actual memory used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[mem-multi] +	TITLE Multi-host Actual Memory Utilization +	FNPATTERN memory.actual.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[users] +	TITLE Users and Processes +	YAXIS # +	DEF:p=procs.rrd:la:AVERAGE +	DEF:u=users.rrd:la:AVERAGE +	AREA:p#00CC00:Processes +	LINE1:u#000099:Users +	COMMENT:\n +	GPRINT:p:LAST:Processes   \: %5.1lf%s (cur) +	GPRINT:p:MAX: \: %5.1lf%s (max) +	GPRINT:p:MIN: \: %5.1lf%s (min) +	GPRINT:p:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:u:LAST:Users       \: %5.1lf%s (cur) +	GPRINT:u:MAX: \: %5.1lf%s (max) +	GPRINT:u:MIN: \: %5.1lf%s (min) +	GPRINT:u:AVERAGE: \: %5.1lf%s (avg)\n + +[users-multi] +	TITLE Multi-host users +	FNPATTERN users.rrd +	YAXIS # +	DEF:u@RRDIDX@=@RRDFN@:la:AVERAGE +	LINE2:u@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:u@RRDIDX@:LAST:Users       \: %5.1lf%s (cur) +	GPRINT:u@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:u@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:u@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[tcp] +	# TCP tests - include all, except the HTTP tests as they tend to have +	# much longer response times than the normal tcp tests. +	FNPATTERN tcp.(.+).rrd +	EXFNPATTERN tcp.http.(.+).rrd +	TITLE TCP Connection Times +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[http] +	FNPATTERN tcp.http.(.+).rrd +	TITLE HTTP Response Times +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[conn-multi] +	FNPATTERN tcp.conn.rrd +	TITLE PING Round-trip time +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[ntpstat] +	TITLE NTP accuracy +	YAXIS Offset (ms) +	DEF:u=ntpstat.rrd:offsetms:AVERAGE +	LINE2:u#FF0000:Offset (ms) +	COMMENT:\n +	GPRINT:u:LAST: \: %5.2lf ms (cur)\n +	GPRINT:u:MAX: \: %5.2lf ms (max)\n +	GPRINT:u:MIN: \: %5.2lf ms (min)\n +	GPRINT:u:AVERAGE: \: %5.2lf ms (avg)\n + +[vmstat] +	TITLE CPU Utilization +	YAXIS % Load +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	AREA:cpu_sys#FF0000:System +	STACK:cpu_usr#FFFF00:User +	STACK:cpu_idl#00FF00:Idle +	COMMENT:\n +	GPRINT:cpu_sys:LAST:System  \: %5.1lf (cur) +	GPRINT:cpu_sys:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr:LAST:User    \: %5.1lf (cur) +	GPRINT:cpu_usr:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl:LAST:Idle    \: %5.1lf (cur) +	GPRINT:cpu_idl:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl:AVERAGE: \: %5.1lf (avg)\n + +[vmstat1] +	TITLE CPU Utilization +	YAXIS % Load +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	DEF:cpu_wait=vmstat.rrd:cpu_wait:AVERAGE +	AREA:cpu_sys#FF0000:System +	STACK:cpu_wait#774400:I/O wait +	STACK:cpu_usr#FFFF00:User +	STACK:cpu_idl#00FF00:Idle +	COMMENT:\n +	GPRINT:cpu_sys:LAST:System  \: %5.1lf (cur) +	GPRINT:cpu_sys:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_wait:LAST:I/O Wait\: %5.1lf (cur) +	GPRINT:cpu_wait:MAX: \: %5.1lf (max) +	GPRINT:cpu_wait:MIN: \: %5.1lf (min) +	GPRINT:cpu_wait:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr:LAST:User    \: %5.1lf (cur) +	GPRINT:cpu_usr:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl:LAST:Idle    \: %5.1lf (cur) +	GPRINT:cpu_idl:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl:AVERAGE: \: %5.1lf (avg)\n + +[vmstat2] +	TITLE CPU Utilization +	YAXIS % Load +	-u 1.0 +	DEF:avg=la.rrd:la:AVERAGE +	CDEF:la=avg,100,/ +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	CDEF:cpu_idl2=cpu_idl,100,/ +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	CDEF:cpu_usr2=cpu_usr,100,/ +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	CDEF:cpu_sys2=cpu_sys,100,/ +	AREA:cpu_sys2#FF0000:System +	STACK:cpu_usr2#FFFF00:User +	STACK:cpu_idl2#00FF00:Idle +	LINE1:la#000099:CPU Load Average +	COMMENT:\n +	GPRINT:cpu_sys2:LAST:System           \: %5.1lf (cur) +	GPRINT:cpu_sys2:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys2:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr2:LAST:User             \: %5.1lf (cur) +	GPRINT:cpu_usr2:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr2:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl2:LAST:Idle             \: %5.1lf (cur) +	GPRINT:cpu_idl2:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl2:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:la:LAST:CPU Load Average \: %5.1lf (cur) +	GPRINT:la:MAX: \: %5.1lf (max) +	GPRINT:la:MIN: \: %5.1lf (min) +	GPRINT:la:AVERAGE: \: %5.1lf (avg)\n + +[vmstat3] +	TITLE Interrupts and Context Switches +	YAXIS Average Events/sec +	DEF:int=vmstat.rrd:cpu_int:AVERAGE +	DEF:csw=vmstat.rrd:cpu_csw:AVERAGE +	LINE2:int#0000ff:Interrupts +	LINE2:csw#00FF00:Context Switches +	COMMENT:\n +	GPRINT:int:LAST:Interrupts        \: %5.1lf%s (cur) +	GPRINT:int:MAX: \: %5.1lf%s (max) +	GPRINT:int:MIN: \: %5.1lf%s (min) +	GPRINT:int:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:csw:LAST:Context Switches  \: %5.1lf%s (cur) +	GPRINT:csw:MAX: \: %5.1lf%s (max) +	GPRINT:csw:MIN: \: %5.1lf%s (min) +	GPRINT:csw:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat4] +	TITLE Swap Activity +	YAXIS Average kB/s +	-b 1024 +	DEF:si=vmstat.rrd:mem_si:AVERAGE +	DEF:so=vmstat.rrd:mem_so:AVERAGE +	LINE2:si#0000ff:Memory Swapped from Disk +	LINE2:so#00FF00:Memory Swapped to Disk +	COMMENT:\n +	GPRINT:si:LAST:Memory Swapped from Disk  \: %5.1lf (cur) +	GPRINT:si:MAX: \: %5.1lf (max) +	GPRINT:si:MIN: \: %5.1lf (min) +	GPRINT:si:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:si:LAST:Memory Swapped to Disk    \: %5.1lf (cur) +	GPRINT:si:MAX: \: %5.1lf (max) +	GPRINT:si:MIN: \: %5.1lf (min) +	GPRINT:si:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat5] +	TITLE Block I/O +	YAXIS Average blocks/s +	DEF:bi=vmstat.rrd:dsk_bi:AVERAGE +	DEF:bo=vmstat.rrd:dsk_bo:AVERAGE +	LINE2:bi#0000FF:Blocks sent to a block device +	LINE2:bo#00FF00:Blocks received from a block device +	COMMENT:\n +	GPRINT:bi:LAST:Blocks sent to a block device        \: %5.1lf (cur) +	GPRINT:bi:MAX: \: %5.1lf (max) +	GPRINT:bi:MIN: \: %5.1lf (min) +	GPRINT:bi:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:bo:LAST:Blocks received from a block device  \: %5.1lf (cur) +	GPRINT:bo:MAX: \: %5.1lf (max) +	GPRINT:bo:MIN: \: %5.1lf (min) +	GPRINT:bo:AVERAGE: \: %5.1lf (avg)\n + +[vmstat6] +	# This graph only works on some OS'es (Solaris) +	TITLE Memory Utilization +	YAXIS Size kB +	-b 1024 +	DEF:free=vmstat.rrd:mem_free:AVERAGE +	CDEF:fr=free,1024,* +	DEF:swap=vmstat.rrd:mem_swap:AVERAGE +	CDEF:sw=swap,1024,* +	LINE2:fr#0000ff:Size of the free list +	LINE2:sw#00FF00:Swap space currently available +	COMMENT:\n +	GPRINT:fr:LAST:Size of the free list           \: %5.1lf%s (cur) +	GPRINT:fr:MAX: \: %5.1lf%s (max) +	GPRINT:fr:MIN: \: %5.1lf%s (min) +	GPRINT:fr:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:sw:LAST:Swap space currently available  \: %5.1lf%s (cur) +	GPRINT:sw:MAX: \: %5.1lf%s (max) +	GPRINT:sw:MIN: \: %5.1lf%s (min) +	GPRINT:sw:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat7] +	# This graph only works on some OS'es (Solaris) +	TITLE Memory Utilization +	YAXIS Events/s +	DEF:re=vmstat.rrd:mem_re:AVERAGE +	DEF:mf=vmstat.rrd:mem_mf:AVERAGE +	LINE2:re#0000ff:Page reclaims +	LINE2:mf#00FF00:Minor faults +	COMMENT:\n +	GPRINT:re:LAST:Page reclaims  \: %5.1lf%s (cur) +	GPRINT:re:MAX: \: %5.1lf%s (max) +	GPRINT:re:MIN: \: %5.1lf%s (min) +	GPRINT:re:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:mf:LAST:Minor faults   \: %5.1lf%s (cur) +	GPRINT:mf:MAX: \: %5.1lf%s (max) +	GPRINT:mf:MIN: \: %5.1lf%s (min) +	GPRINT:mf:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat8] +	# This graph only works on some OS'es (Solaris) +	TITLE Paging Activity +	YAXIS kB/s +	-b 1024 +	DEF:pi=vmstat.rrd:mem_pi:AVERAGE +	CDEF:rpi=pi,1024,* +	DEF:po=vmstat.rrd:mem_po:AVERAGE +	CDEF:rpo=po,1024,* +	LINE2:rpi#0000ff:Paged in +	LINE2:rpo#00FF00:Paged out +	COMMENT:\n +	GPRINT:pi:LAST:Page Ins   \: %5.1lf%s (cur) +	GPRINT:pi:MAX: \: %5.1lf%s (max) +	GPRINT:pi:MIN: \: %5.1lf%s (min) +	GPRINT:pi:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:po:LAST:Page Outs  \: %5.1lf%s (cur) +	GPRINT:po:MAX: \: %5.1lf%s (max) +	GPRINT:po:MIN: \: %5.1lf%s (min) +	GPRINT:po:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat9] +	# This graph only works on some OS'es (Solaris) +	TITLE RAM Scan Rate +	YAXIS Pages scanned/s +	DEF:sr=vmstat.rrd:sr:AVERAGE +	AREA:sr#00CC00:Scan Rate +	-u 20 +	GPRINT:sr:LAST: \: %5.1lf%s (cur) +	GPRINT:sr:MAX: \: %5.1lf%s (max) +	GPRINT:sr:MIN: \: %5.1lf%s (min) +	GPRINT:sr:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat0] +	# This graph only works on some OS'es (Solaris) +	TITLE System Calls +	YAXIS System Calls/s +	DEF:cpu_syc=vmstat.rrd:cpu_syc:AVERAGE +	AREA:cpu_syc#00CC00:System Calls +	GPRINT:cpu_syc:LAST: \: %5.1lf%s (cur) +	GPRINT:cpu_syc:MAX: \: %5.1lf%s (max) +	GPRINT:cpu_syc:MIN: \: %5.1lf%s (min) +	GPRINT:cpu_syc:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat] +	TITLE TCP/IP statistics +	YAXIS Packets/second +	DEF:tcpInInorderPackets=netstat.rrd:tcpInInorderPackets:AVERAGE +	DEF:tcpOutDataPackets=netstat.rrd:tcpOutDataPackets:AVERAGE +	DEF:tcpRetransPackets=netstat.rrd:tcpRetransPackets:AVERAGE +	LINE3:tcpInInorderPackets#00FF00:In  +	LINE1:tcpOutDataPackets#0000FF:Out  +	LINE2:tcpRetransPackets#FF0000:Retrans  +	COMMENT:\n +	GPRINT:tcpInInorderPackets:LAST:In       \: %5.1lf%s (cur) +	GPRINT:tcpInInorderPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpInInorderPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpInInorderPackets:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpOutDataPackets:LAST:Out      \: %5.1lf%s (cur) +	GPRINT:tcpOutDataPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpOutDataPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpOutDataPackets:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpRetransPackets:LAST:Retrans  \: %5.1lf%s (cur) +	GPRINT:tcpRetransPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpRetransPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpRetransPackets:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat0] +	TITLE TCP/IP statistics +	YAXIS Bits/second +	DEF:tcpInInorderBytes=netstat.rrd:tcpInInorderBytes:AVERAGE +	DEF:tcpOutDataBytes=netstat.rrd:tcpOutDataBytes:AVERAGE +	DEF:tcpRetransBytes=netstat.rrd:tcpRetransBytes:AVERAGE +	CDEF:tcpInInorderBits=tcpInInorderBytes,8,* +	CDEF:tcpOutDataBits=tcpOutDataBytes,8,* +	CDEF:tcpRetransBits=tcpRetransBytes,8,* +	LINE3:tcpInInorderBits#00FF00:In  +	LINE1:tcpOutDataBits#0000FF:Out  +	LINE2:tcpRetransBits#FF0000:Retrans  +	COMMENT:\n +	GPRINT:tcpInInorderBits:LAST:In       \: %5.1lf%s (cur) +	GPRINT:tcpInInorderBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpInInorderBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpInInorderBits:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpOutDataBits:LAST:Out      \: %5.1lf%s (cur) +	GPRINT:tcpOutDataBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpOutDataBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpOutDataBits:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpRetransBits:LAST:Retrans  \: %5.1lf%s (cur) +	GPRINT:tcpRetransBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpRetransBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpRetransBits:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat1] +	TITLE UDP Statistics +	YAXIS # Datagrams +	DEF:udpInDatagrams=netstat.rrd:udpInDatagrams:AVERAGE +	DEF:udpOutDatagrams=netstat.rrd:udpOutDatagrams:AVERAGE +	DEF:udpInErrors=netstat.rrd:udpInErrors:AVERAGE +	LINE3:udpInDatagrams#00FF00:UDP In Datagrams +	LINE1:udpOutDatagrams#0000FF:UDP Out Datagrams +	LINE2:udpInErrors#FF0000:UDP In Errors +	COMMENT:\n +	GPRINT:udpInDatagrams:LAST:UDP In Datagrams       \: %5.1lf%s (cur) +	GPRINT:udpInDatagrams:MAX: \: %5.1lf%s (max) +	GPRINT:udpInDatagrams:MIN: \: %5.1lf%s (min) +	GPRINT:udpInDatagrams:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:udpOutDatagrams:LAST:UDP Out Datagrams      \: %5.1lf%s (cur) +	GPRINT:udpOutDatagrams:MAX: \: %5.1lf%s (max) +	GPRINT:udpOutDatagrams:MIN: \: %5.1lf%s (min) +	GPRINT:udpOutDatagrams:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:udpInErrors:LAST:UDP In Errors          \: %5.1lf%s (cur) +	GPRINT:udpInErrors:MAX: \: %5.1lf%s (max) +	GPRINT:udpInErrors:MIN: \: %5.1lf%s (min) +	GPRINT:udpInErrors:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat2] +	TITLE TCP Statistics +	YAXIS # Events +	DEF:tcpActiveOpens=netstat.rrd:tcpActiveOpens:AVERAGE +	DEF:tcpPassiveOpens=netstat.rrd:tcpPassiveOpens:AVERAGE +	DEF:tcpAttemptFails=netstat.rrd:tcpAttemptFails:AVERAGE +	DEF:tcpEstabResets=netstat.rrd:tcpEstabResets:AVERAGE +	LINE2:tcpActiveOpens#0000FF:TCP Active Open +	LINE2:tcpPassiveOpens#000088:TCP Passive Open +	LINE2:tcpAttemptFails#FF0000:TCP Attempts Fail +	LINE2:tcpEstabResets#88FF00:TCP Established Resets +	COMMENT:\n +	GPRINT:tcpActiveOpens:LAST:TCP Active Opens            \: %5.1lf%s (cur) +	GPRINT:tcpActiveOpens:MAX: \: %5.1lf%s (max) +	GPRINT:tcpActiveOpens:MIN: \: %5.1lf%s (min) +	GPRINT:tcpActiveOpens:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpPassiveOpens:LAST:TCP Passive Opens           \: %5.1lf%s (cur) +	GPRINT:tcpPassiveOpens:MAX: \: %5.1lf%s (max) +	GPRINT:tcpPassiveOpens:MIN: \: %5.1lf%s (min) +	GPRINT:tcpPassiveOpens:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpAttemptFails:LAST:TCP Failed Attempts         \: %5.1lf%s (cur) +	GPRINT:tcpAttemptFails:MAX: \: %5.1lf%s (max) +	GPRINT:tcpAttemptFails:MIN: \: %5.1lf%s (min) +	GPRINT:tcpAttemptFails:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpEstabResets:LAST:TCP Established Resets      \: %5.1lf%s (cur) +	GPRINT:tcpEstabResets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpEstabResets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpEstabResets:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat3] +	TITLE Established TCP Connections +	YAXIS # Connections +	DEF:tcpCurrEstab=netstat.rrd:tcpCurrEstab:AVERAGE +	LINE2:tcpCurrEstab#0000FF:TCP Established Connections +	COMMENT:\n +	GPRINT:tcpCurrEstab:LAST:TCP Established Connections \: %5.1lf%s (cur) +	GPRINT:tcpCurrEstab:MAX: \: %5.1lf%s (max) +	GPRINT:tcpCurrEstab:MIN: \: %5.1lf%s (min) +	GPRINT:tcpCurrEstab:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat3-multi] +	TITLE Multi-host TCP Connections +	YAXIS # Connections +	FNPATTERN netstat.rrd +	DEF:tcpCurrEstab@RRDIDX@=@RRDFN@:tcpCurrEstab:AVERAGE +	LINE2:tcpCurrEstab@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:tcpCurrEstab@RRDIDX@:LAST:# Est. \: %5.1lf%s (cur) +	GPRINT:tcpCurrEstab@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:tcpCurrEstab@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:tcpCurrEstab@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[iostat] +	TITLE I/O Utilization +	YAXIS Stats +	FNPATTERN iostat.(.+).rrd +	DEF:p@RRDIDX@B=@RRDFN@:b:AVERAGE +	DEF:p@RRDIDX@A=@RRDFN@:asvc_t:AVERAGE +	DEF:p@RRDIDX@W=@RRDFN@:wsvc_t:AVERAGE +	CDEF:p@RRDIDX@t=p@RRDIDX@B,5,GT,p@RRDIDX@B,UNKN,IF +	LINE2:p@RRDIDX@t#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:p@RRDIDX@B:LAST:B       \: %5.1lf (cur) +	GPRINT:p@RRDIDX@B:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@B:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@B:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:p@RRDIDX@A:LAST:asvc_t  \: %5.1lf (cur) +	GPRINT:p@RRDIDX@A:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@A:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@A:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:p@RRDIDX@W:LAST:wsvc_t  \: %5.1lf (cur) +	GPRINT:p@RRDIDX@W:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@W:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@W:AVERAGE: \: %5.1lf (avg)\n +	COMMENT:\n + +[apache] +	TITLE Apache Utilization +	YAXIS Activity +	DEF:TA=apache.rrd:TA:AVERAGE +	CDEF:TA1=TA,300,* +	DEF:TKB=apache.rrd:TKB:AVERAGE +	CDEF:TKB1=TKB,300,* +	LINE2:TA1#0000FF:TA (# Accesses) +	LINE2:TKB1#FF0000:TKB (kBytes Transferred) +	COMMENT:\n +	GPRINT:TA1:LAST:TA    \: %5.1lf%s (cur) +	GPRINT:TA1:MAX: \: %5.1lf%s (max) +	GPRINT:TA1:MIN: \: %5.1lf%s (min) +	GPRINT:TA1:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:TKB1:LAST:TKB   \: %5.1lf%s (cur) +	GPRINT:TKB1:MAX: \: %5.1lf%s (max) +	GPRINT:TKB1:MIN: \: %5.1lf%s (min) +	GPRINT:TKB1:AVERAGE: \: %5.1lf%s (avg)\n + +[apache1] +	TITLE Apache Workers +	YAXIS # Worker Threads/Processes +	#DEF:BS=apache.rrd:BS:AVERAGE +	#DEF:IS=apache.rrd:IS:AVERAGE +	DEF:BW=apache.rrd:BW:AVERAGE +	DEF:IW=apache.rrd:IW:AVERAGE +	#LINE2:BS#00CC00:BS +	#LINE2:IS#FF00FF:IS +	LINE2:BW#555555:BW Busy Workers +	LINE2:IW#880000:IW Idle Workers +	COMMENT:\n +	GPRINT:BW:LAST:BW   \: %5.1lf%s (cur) +	GPRINT:BW:MAX: \: %5.1lf%s (max) +	GPRINT:BW:MIN: \: %5.1lf%s (min) +	GPRINT:BW:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:IW:LAST:IW   \: %5.1lf%s (cur) +	GPRINT:IW:MAX: \: %5.1lf%s (max) +	GPRINT:IW:MIN: \: %5.1lf%s (min) +	GPRINT:IW:AVERAGE: \: %5.1lf%s (avg)\n + +[apache2] +	TITLE Apache CPU Utilization +	YAXIS CPU Load +	DEF:CPU=apache.rrd:CPU:AVERAGE +	LINE2:CPU#000088:CPU +	COMMENT:\n +	GPRINT:CPU:LAST:CPU   \: %5.1lf (cur) +	GPRINT:CPU:MAX: \: %5.1lf (max) +	GPRINT:CPU:MIN: \: %5.1lf (min) +	GPRINT:CPU:AVERAGE: \: %5.1lf (avg)\n + +[apache3] +	TITLE Apache Requests/Second +	YAXIS # Requests +	DEF:RPS=apache.rrd:REQPERSEC:AVERAGE +	LINE2:RPS#000088:RPS +	COMMENT:\n +	GPRINT:RPS:LAST:Requests per Second   \: %5.1lf (cur) +	GPRINT:RPS:MAX: \: %5.1lf (max) +	GPRINT:RPS:MIN: \: %5.1lf (min) +	GPRINT:RPS:AVERAGE: \: %5.1lf (avg)\n + +[apache3-multi] +	TITLE Multi-Host Apache Requests/Second +	FNPATTERN apache.rrd +	YAXIS # Requests / seconds +	# --slope-mode +	DEF:RPS@RRDIDX@=@RRDFN@:REQPERSEC:AVERAGE +	LINE2:RPS@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:RPS@RRDIDX@:LAST:Requests per Second  \: %5.1lf (cur) +	GPRINT:RPS@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:RPS@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:RPS@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[bea] +	FNPATTERN bea.memory.(.+).rrd +	TITLE BEA/Weblogic % Heap Free +	YAXIS % Free +	DEF:free@RRDIDX@=@RRDFN@:freeheap:AVERAGE +	DEF:used@RRDIDX@=@RRDFN@:usedheap:AVERAGE +	DEF:total@RRDIDX@=@RRDFN@:totalheap:AVERAGE +	CDEF:mbfree@RRDIDX@=free@RRDIDX@,1048576,/ +	CDEF:mbused@RRDIDX@=used@RRDIDX@,1048576,/ +	CDEF:mbtotal@RRDIDX@=total@RRDIDX@,1048576,/ +	CDEF:pctfree@RRDIDX@=mbfree@RRDIDX@,100,*,mbtotal@RRDIDX@,/ +	LINE2:pctfree@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:mbused@RRDIDX@:LAST:Used \: %8.1lf MB (cur) +	GPRINT:mbused@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbused@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbused@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n +	GPRINT:mbfree@RRDIDX@:LAST:Free \: %8.1lf MB (cur) +	GPRINT:mbfree@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbfree@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbfree@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n + +[bea2] +	FNPATTERN bea.memory.(.+).rrd +	TITLE BEA/Weblogic % Physical Memory Free +	YAXIS % Free +	DEF:free@RRDIDX@=@RRDFN@:freephysmem:AVERAGE +	DEF:used@RRDIDX@=@RRDFN@:usedphysmem:AVERAGE +	DEF:total@RRDIDX@=@RRDFN@:totalphysmem:AVERAGE +	CDEF:mbfree@RRDIDX@=free@RRDIDX@,1048576,/ +	CDEF:mbused@RRDIDX@=used@RRDIDX@,1048576,/ +	CDEF:mbtotal@RRDIDX@=total@RRDIDX@,1048576,/ +	CDEF:pctfree@RRDIDX@=mbfree@RRDIDX@,100,*,mbtotal@RRDIDX@,/ +	LINE2:pctfree@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:mbused@RRDIDX@:LAST:Used \: %8.1lf MB (cur) +	GPRINT:mbused@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbused@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbused@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n +	GPRINT:mbfree@RRDIDX@:LAST:Free \: %8.1lf MB (cur) +	GPRINT:mbfree@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbfree@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbfree@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n + +[bea3] +	FNPATTERN bea.threads.(.+).weblogic.kernel.Default.rrd +	TITLE BEA/Weblogic kernel.Default Idle Threads +	YAXIS # Idle Threads +	DEF:threads@RRDIDX@=@RRDFN@:currentidlecount:AVERAGE +	LINE2:threads@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:threads@RRDIDX@:LAST:Free \: %4.2lf (cur) +	GPRINT:threads@RRDIDX@:MAX: \: %4.2lf (max) +	GPRINT:threads@RRDIDX@:MIN: \: %4.2lf (min) +	GPRINT:threads@RRDIDX@:AVERAGE: \: %4.2lf (avg)\n + +[bea4] +	FNPATTERN bea.threads.(.+).weblogic.kernel.Default.rrd +	TITLE BEA/Weblogic kernel.Default Requests +	YAXIS # Requests +	DEF:reqs@RRDIDX@=@RRDFN@:totalcount:AVERAGE +	LINE2:reqs@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:reqs@RRDIDX@:LAST:Free \: %4.2lf (cur) +	GPRINT:reqs@RRDIDX@:MAX: \: %4.2lf (max) +	GPRINT:reqs@RRDIDX@:MIN: \: %4.2lf (min) +	GPRINT:reqs@RRDIDX@:AVERAGE: \: %4.2lf (avg)\n + +[bind] +	TITLE BIND Utilization +	YAXIS Stats +	DEF:A=bind.rrd:A:AVERAGE +	DEF:ANY=bind.rrd:ANY:AVERAGE +	DEF:AXFR=bind.rrd:AXFR:AVERAGE +	DEF:MX=bind.rrd:MX:AVERAGE +	DEF:O=bind.rrd:O:AVERAGE +	DEF:PTR=bind.rrd:PTR:AVERAGE +	DEF:SOA=bind.rrd:SOA:AVERAGE +	CDEF:A1=A,300,* +	CDEF:ANY1=ANY,300,* +	CDEF:AXFR1=AXFR,300,* +	CDEF:MX1=MX,300,* +	CDEF:O1=O,300,* +	CDEF:PTR1=PTR,300,* +	CDEF:SOA1=SOA,300,* +	LINE2:A1#0000FF:A +	LINE2:ANY1#FF0000:ANY +	LINE2:AXFR1#00CC00:AXFR +	LINE2:MX1#FF00FF:MX +	LINE2:O1#555555:O +	LINE2:PTR1#880000:PTR +	LINE2:SOA1#000088:SOA +	COMMENT:\n +	GPRINT:A1:LAST:A     \: %5.1lf (cur)  +	GPRINT:A1:MAX:A    \: %5.1lf (max)  +	GPRINT:A1:MIN:A     \: %5.1lf (min)  +	GPRINT:A1:AVERAGE:A     \: %5.1lf (avg)\n +	GPRINT:ANY1:LAST:ANY   \: %5.1lf (cur)  +	GPRINT:ANY1:MAX:ANY  \: %5.1lf (max)  +	GPRINT:ANY1:MIN:ANY   \: %5.1lf (min)  +	GPRINT:ANY1:AVERAGE:ANY   \: %5.1lf (avg)\n +	GPRINT:AXFR1:LAST:AXFR  \: %5.1lf (cur)  +	GPRINT:AXFR1:MAX:AXFR \: %5.1lf (max)  +	GPRINT:AXFR1:MIN:AXFR  \: %5.1lf (min)  +	GPRINT:AXFR1:AVERAGE:AXFR  \: %5.1lf (avg)\n +	GPRINT:MX1:LAST:MX    \: %5.1lf (cur)  +	GPRINT:MX1:MAX:MX   \: %5.1lf (max)  +	GPRINT:MX1:MIN:MX    \: %5.1lf (min)  +	GPRINT:MX1:AVERAGE:MX    \: %5.1lf (avg)\n +	GPRINT:O1:LAST:O     \: %5.1lf (cur)  +	GPRINT:O1:MAX:O    \: %5.1lf (max)  +	GPRINT:O1:MIN:O     \: %5.1lf (min)  +	GPRINT:O1:AVERAGE:O     \: %5.1lf (avg)\n +	GPRINT:PTR1:LAST:PTR   \: %5.1lf (cur)  +	GPRINT:PTR1:MAX:PTR  \: %5.1lf (max)  +	GPRINT:PTR1:MIN:PTR   \: %5.1lf (min)  +	GPRINT:PTR1:AVERAGE:PTR   \: %5.1lf (avg)\n +	GPRINT:SOA1:LAST:SOA   \: %5.1lf (cur)  +	GPRINT:SOA1:MAX:SOA  \: %5.1lf (max)  +	GPRINT:SOA1:MIN:SOA   \: %5.1lf (min)  +	GPRINT:SOA1:AVERAGE:SOA   \: %5.1lf (avg)\n + +[sendmail] +	FNPATTERN sendmail.(.+).rrd +	TITLE Sendmail Activity +	YAXIS Messages +	DEF:p@RRDIDX@IN=@RRDFN@:msgsfr:AVERAGE +	DEF:p@RRDIDX@OUT=@RRDFN@:msgsto:AVERAGE +	CDEF:p@RRDIDX@IN1=p@RRDIDX@IN,300,* +	CDEF:p@RRDIDX@OUT1=p@RRDIDX@OUT,300,* +	LINE1:p@RRDIDX@IN1#@COLOR@:@RRDPARAM@ IN +	LINE2:p@RRDIDX@OUT1#@COLOR@:@RRDPARAM@ OUT +	COMMENT:\n +	GPRINT:p@RRDIDX@IN1:LAST:@RRDPARAM@ in   %5.1lf (cur) +	GPRINT:p@RRDIDX@IN1:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@IN1:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@IN1:AVERAGE: \: %5.1lf (avg) +	COMMENT:\n +	GPRINT:p@RRDIDX@OUT1:LAST:@RRDPARAM@ out  %5.1lf (cur) +	GPRINT:p@RRDIDX@OUT1:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@OUT1:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@OUT1:AVERAGE: \: %5.1lf (avg)\n +	COMMENT:\n + +[sendmail1] +        FNPATTERN sendmail.(.+).rrd +        TITLE Sendmail Reject/Discards +        YAXIS Messages +        DEF:p@RRDIDX@IN=@RRDFN@:msgsrej:AVERAGE +        DEF:p@RRDIDX@OUT=@RRDFN@:msgsdis:AVERAGE +        CDEF:p@RRDIDX@IN1=p@RRDIDX@IN,300,* +        CDEF:p@RRDIDX@OUT1=p@RRDIDX@OUT,300,* +        LINE1:p@RRDIDX@IN1#@COLOR@:@RRDPARAM@ REJ +        LINE2:p@RRDIDX@OUT1#@COLOR@:@RRDPARAM@ DIS +        COMMENT:\n +        GPRINT:p@RRDIDX@IN1:LAST:@RRDPARAM@ rej  %5.1lf (cur) +        GPRINT:p@RRDIDX@IN1:MAX: \: %5.1lf (max) +        GPRINT:p@RRDIDX@IN1:MIN: \: %5.1lf (min) +        GPRINT:p@RRDIDX@IN1:AVERAGE: \: %5.1lf (avg) +        COMMENT:\n +        GPRINT:p@RRDIDX@OUT1:LAST:@RRDPARAM@ dis  %5.1lf (cur) +        GPRINT:p@RRDIDX@OUT1:MAX: \: %5.1lf (max) +        GPRINT:p@RRDIDX@OUT1:MIN: \: %5.1lf (min) +        GPRINT:p@RRDIDX@OUT1:AVERAGE: \: %5.1lf (avg)\n +        COMMENT:\n + +[mailq] +	# This handles "mailq.rrd", "mailqin.rrd" and "mailqout.rrd" +	FNPATTERN mailq(.+).rrd +	TITLE Mail Queue Length +	YAXIS Queue Length +	DEF:mailq@RRDIDX@=@RRDFN@:mailq:AVERAGE +	LINE2:mailq@RRDIDX@#@COLOR@:Queue Length @RRDPARAM@ +	COMMENT:\n +	GPRINT:mailq@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:mailq@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:mailq@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:mailq@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + + +[iishealth] +	# Based on the "IIShealth.zip" tool from deadcat +	FNPATTERN iishealth.(.+).rrd +	TITLE IIS Utilization +	YAXIS # +	# Yes, they really do call it "realmempct". Cut'n'paste programming. +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[temperature] +	FNPATTERN temperature.(.+).rrd +	TITLE Temperature +	YAXIS Celsius +	DEF:p@RRDIDX@=@RRDFN@:temperature:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +# If you want your temperature graphs in Fahrenheit, +# comment out the [temperature] section above, and  +# uncomment this definition. +# +#[temperature] +#	FNPATTERN temperature.(.+).rrd +#	TITLE Temperature +#	YAXIS Fahrenheit +#	DEF:p@RRDIDX@=@RRDFN@:temperature:AVERAGE +#	CDEF:tempf@RRDIDX@=9,5,/,p@RRDIDX@,*,32,+ +#	LINE2:tempf@RRDIDX@#@COLOR@:@RRDPARAM@ +#	GPRINT:tempf@RRDIDX@:LAST: \: %5.1lf (cur) +#	GPRINT:tempf@RRDIDX@:MAX: \: %5.1lf (max) +#	GPRINT:tempf@RRDIDX@:MIN: \: %5.1lf (min) +#	GPRINT:tempf@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[citrix] +	TITLE Citrix Users +	YAXIS # Users +	DEF:u=citrix.rrd:users:AVERAGE +	LINE2:u#FF0000:Users +	COMMENT:\n +	GPRINT:u:LAST: \: %5.1lf (cur) +	GPRINT:u:MAX: \: %5.1lf (max) +	GPRINT:u:MIN: \: %5.1lf (min) +	GPRINT:u:AVERAGE: \: %5.1lf (avg)\n + +[bbgen] +	TITLE bbgen Runtime +	YAXIS Seconds +	DEF:rt=bbgen.rrd:runtime:AVERAGE +	AREA:rt#00CCCC:Run Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[bbtest] +	TITLE bbtest Run Time +	YAXIS Seconds +	DEF:rt=bbtest.rrd:runtime:AVERAGE +	AREA:rt#00CCCC:Run Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[bbproxy] +	TITLE bbproxy Average Queue Time +	YAXIS Seconds +	DEF:rt=bbproxy.rrd:runtime:AVERAGE +	LINE2:rt#00CCCC:Queue Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[hobbitd] +	TITLE hobbitd Incoming Messages +	YAXIS Messages +	DEF:in=hobbitd.rrd:inmessages:AVERAGE +	LINE2:in#00CCCC:Incoming messages +	COMMENT:\n +	GPRINT:in:LAST: \: %5.1lf (cur) +	GPRINT:in:MAX: \: %5.1lf (max) +	GPRINT:in:MIN: \: %5.1lf (min) +	GPRINT:in:AVERAGE: \: %5.1lf (avg)\n + +[mrtg] +	FNPATTERN mrtg.*\.(.+).rrd +	TITLE Network Traffic (MRTG) +	YAXIS Bits/second +	DEF:inbytes@RRDIDX@=@RRDFN@:ds0:AVERAGE +	CDEF:in@RRDIDX@=inbytes@RRDIDX@,8,* +	DEF:outbytes@RRDIDX@=@RRDFN@:ds1:AVERAGE +	CDEF:out@RRDIDX@=outbytes@RRDIDX@,8,* +	LINE2:in@RRDIDX@#@COLOR@:@RRDPARAM@  inbound +	GPRINT:in@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:in@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:in@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:in@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n +	LINE2:out@RRDIDX@#@COLOR@:@RRDPARAM@ outbound +	GPRINT:out@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:out@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:out@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:out@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[mysqlslow] +	DEF:slow=mysql.rrd:Slowqueries:AVERAGE +	TITLE MySQL Slow Queries +	YAXIS # +	LINE2:slow#00CCCC:Slow Queries +	COMMENT:\n +	GPRINT:slow:LAST: \: %5.1lf (cur) +	GPRINT:slow:MAX: \: %5.1lf (max) +	GPRINT:slow:MIN: \: %5.1lf (min) +	GPRINT:slow:AVERAGE: \: %5.1lf (avg)\n + +[mysqlthread] +	DEF:threads=mysql.rrd:Threads:AVERAGE +	TITLE MySQL Active Threads +	YAXIS # +	AREA:threads#00CCCC:Threads +	COMMENT:\n +	GPRINT:threads:LAST: \: %5.1lf (cur) +	GPRINT:threads:MAX: \: %5.1lf (max) +	GPRINT:threads:MIN: \: %5.1lf (min) +	GPRINT:threads:AVERAGE: \: %5.1lf (avg)\n + +[ifstat] +	FNPATTERN ifstat.(.+).rrd +	TITLE Network Traffic +	YAXIS Bits/second +	DEF:inbytes@RRDIDX@=@RRDFN@:bytesReceived:AVERAGE +	CDEF:in@RRDIDX@=inbytes@RRDIDX@,8,* +	DEF:outbytes@RRDIDX@=@RRDFN@:bytesSent:AVERAGE +	CDEF:out@RRDIDX@=outbytes@RRDIDX@,8,* +	LINE2:in@RRDIDX@#@COLOR@:@RRDPARAM@  inbound +	GPRINT:in@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:in@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:in@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:in@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n +	LINE2:out@RRDIDX@#@COLOR@:@RRDPARAM@ outbound +	GPRINT:out@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:out@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:out@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:out@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[files] +	FNPATTERN filesizes.(.+).rrd +	TITLE File/Directory sizes +	YAXIS KB +	DEF:sz@RRDIDX@=@RRDFN@:size:AVERAGE +	LINE2:sz@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:sz@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:sz@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:sz@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:sz@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[processes] +	FNPATTERN processes.(.+).rrd +	TITLE Process counts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:cnt@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:cnt@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:cnt@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[ports] +	FNPATTERN ports.(.+).rrd +	TITLE Network port counts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:cnt@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:cnt@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:cnt@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[lines] +	FNPATTERN lines.(.+).rrd +	TITLE Logfile linecounts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: %6.1lf (cur) \: +	GPRINT:cnt@RRDIDX@:MAX: %6.1lf (max) \: +	GPRINT:cnt@RRDIDX@:MIN: %6.1lf (min) \: +	GPRINT:cnt@RRDIDX@:AVERAGE: %6.1lf (avg)\n + +[storage] +	TITLE Storage Groups  +	YAXIS  recordings +	DEF:storage1=storage.rrd:rectvtotal:AVERAGE +	LINE2:storage1#00CCCC:current recorded + +	DEF:rectime=storage.rrd:rectvtime:AVERAGE +	LINE2:rectime#000000:current recorded time + +	DEF:livetime=storage.rrd:livetvtime:AVERAGE +	LINE2:livetime#00CC11:current live  time + + +[memmbe] +	TITLE Memory usage for MythBackend +	YAXIS mythbackend +	DEF:vmsize=memmbe.rrd:VmSize:AVERAGE +	LINE2:vmsize#00CCCC:vmsize + +	DEF:vmpeak=memmbe.rrd:VmPeak:AVERAGE +	LINE2:vmpeak#000000:vmpeak + +	DEF:vmrss=memmbe.rrd:VmRSS:AVERAGE +	LINE2:vmrss#00CC11:vmrss + +[memmfe] +	TITLE Memory usage for MythFrontend +	YAXIS mythfrontend +	DEF:vmsize=memmfe.rrd:VmSize:AVERAGE +	LINE2:vmsize#00CCCC:vmsize + +	DEF:vmpeak=memmfe.rrd:VmPeak:AVERAGE +	LINE2:vmpeak#000000:vmpeak + +	DEF:vmrss=memmfe.rrd:VmRSS:AVERAGE +	LINE2:vmrss#00CC11:vmrss diff --git a/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.diff b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.diff new file mode 100644 index 0000000..1ca4caf --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.diff @@ -0,0 +1,42 @@ +--- hobbitgraph.cfg.orig	2008-01-08 09:24:59.000000000 -0600 ++++ hobbitgraph.cfg	2008-01-08 09:12:51.000000000 -0600 +@@ -1135,4 +1135,39 @@ + 	GPRINT:cnt@RRDIDX@:MIN: %6.1lf (min) \: + 	GPRINT:cnt@RRDIDX@:AVERAGE: %6.1lf (avg)\n +  ++[storage] ++	TITLE Storage Groups  ++	YAXIS  recordings ++	DEF:storage1=storage.rrd:rectvtotal:AVERAGE ++	LINE2:storage1#00CCCC:current recorded +  ++	DEF:rectime=storage.rrd:rectvtime:AVERAGE ++	LINE2:rectime#000000:current recorded time ++ ++	DEF:livetime=storage.rrd:livetvtime:AVERAGE ++	LINE2:livetime#00CC11:current live  time ++ ++ ++[memmbe] ++	TITLE Memory usage for MythBackend ++	YAXIS mythbackend ++	DEF:vmsize=memmbe.rrd:VmSize:AVERAGE ++	LINE2:vmsize#00CCCC:vmsize ++ ++	DEF:vmpeak=memmbe.rrd:VmPeak:AVERAGE ++	LINE2:vmpeak#000000:vmpeak ++ ++	DEF:vmrss=memmbe.rrd:VmRSS:AVERAGE ++	LINE2:vmrss#00CC11:vmrss ++ ++[memmfe] ++	TITLE Memory usage for MythFrontend ++	YAXIS mythfrontend ++	DEF:vmsize=memmfe.rrd:VmSize:AVERAGE ++	LINE2:vmsize#00CCCC:vmsize ++ ++	DEF:vmpeak=memmfe.rrd:VmPeak:AVERAGE ++	LINE2:vmpeak#000000:vmpeak ++ ++	DEF:vmrss=memmfe.rrd:VmRSS:AVERAGE ++	LINE2:vmrss#00CC11:vmrss diff --git a/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.orig b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.orig new file mode 100644 index 0000000..e60a2a5 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitgraph.cfg.orig @@ -0,0 +1,1138 @@ +# This file defines how RRD graphs are generated by the hobbitgraph CGI. +# +# Each section begins with a "[SERVICE]" indicator - this is the name passed +# to hobbitgraph.cgi?host=foo&service=SERVICE +# +# A graph has a TITLE and a YAXIS setting - these are texts shown as the +# title of the graph, and the YAXIS heading respectively. (The X-axis is +# always time-based). +# +# If a fixed set of RRD files are used for the graph, you just write those +# in the RRDtool definitions.  +# +# For graphs that use multiple RRD files as input, you specify a filename +# pattern in the FNPATTERN statement, and optionally a pattern of files +# to exclude from the graph with EXFNPATTERN (see "[tcp]" for an example). +# When FNPATTERN is used, you can use "@RRDFN@" in the RRDtool definitions +# to pick up each filename. "@RRDIDX@" is an index (starting at 0) for each +# file in the set. "@RRDPARAM@" contains the first word extracted from the +# pattern of files (see e.g. "[memory]" how this is used). "@COLOR@" picks +# a new color for each graph automatically. +# +# The remainder of the lines in each definition are passed directly to the +# RRDtool rrd_graph() routine. +# +# Most of these RRD definitions are from the larrd-grapher.cgi from LARRD 0.43c. + +[la] +	TITLE CPU Load +	YAXIS Load +	DEF:avg=la.rrd:la:AVERAGE +	CDEF:la=avg,100,/ +	AREA:la#00CC00:CPU Load Average +	-u 1.0 +	GPRINT:la:LAST: \: %5.1lf (cur) +	GPRINT:la:MAX: \: %5.1lf (max) +	GPRINT:la:MIN: \: %5.1lf (min) +	GPRINT:la:AVERAGE: \: %5.1lf (avg)\n + +[la-multi] +	TITLE Multi-host CPU Load +	YAXIS Load +	FNPATTERN la.rrd +	DEF:avg@RRDIDX@=@RRDFN@:la:AVERAGE +	CDEF:la@RRDIDX@=avg@RRDIDX@,100,/ +	LINE2:la@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 1.0 +	GPRINT:la@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:la@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:la@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:la@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[la1] +	TITLE CPU Utilitization +	YAXIS % Used +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	CDEF:pbusy=100,cpu_idl,- +	LINE2:pbusy#00CC00:% CPU busy +	GPRINT:pbusy:LAST: \: %5.1lf (cur) +	GPRINT:pbusy:MAX: \: %5.1lf (max) +	GPRINT:pbusy:MIN: \: %5.1lf (min) +	GPRINT:pbusy:AVERAGE: \: %5.1lf (avg)\n + +[la1-multi] +	TITLE Multi-host CPU Utilitization +	YAXIS % Used +	FNPATTERN vmstat.rrd +	-u 100 +	-r +	DEF:cpu_idl@RRDIDX@=@RRDFN@:cpu_idl:AVERAGE +	CDEF:pbusy@RRDIDX@=100,cpu_idl@RRDIDX@,- +	LINE2:pbusy@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:pbusy@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:pbusy@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:pbusy@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:pbusy@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[clock] +	TITLE Clock offset +	YAXIS Seconds +	DEF:offset=clock.rrd:la:AVERAGE +	LINE2:offset#00CC00:Seconds +	GPRINT:offset:LAST: \: %5.1lf (cur) +	GPRINT:offset:MAX: \: %5.1lf (max) +	GPRINT:offset:MIN: \: %5.1lf (min) +	GPRINT:offset:AVERAGE: \: %5.1lf (avg)\n + +[disk] +	FNPATTERN disk(.*).rrd +	TITLE Disk Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[disk1] +	FNPATTERN disk(.*).rrd +	TITLE Disk Utilization +	YAXIS Used +	DEF:p@RRDIDX@=@RRDFN@:used:AVERAGE +	CDEF:p@RRDIDX@t=p@RRDIDX@,1024,* +	LINE2:p@RRDIDX@t#@COLOR@:@RRDPARAM@ +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf KB (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf KB (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf KB (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf KB (avg)\n + +# The qtree graphs are based on the qtree report from filerstats2bb.pl +# These handle NetApp storage devices. +[qtree] +	FNPATTERN qtree(.+).rrd +	TITLE Qtree Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +# The qtree graphs are based on the inode report from filerstats2bb.pl +# These handle NetApp storage devices +# An enhanced disk script that just runs "df -i" could probably get the +# same data. +[inode] +	FNPATTERN inode(.+).rrd +	TITLE inode Utilization +	YAXIS % Full +	DEF:p@RRDIDX@=@RRDFN@:pct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-l 0 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[memory] +	FNPATTERN memory.(.+).rrd +	TITLE Memory Utilization +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[ram] +	TITLE RAM Utilization +	YAXIS % Used +	DEF:p=memory.real.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% RAM used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[ram-multi] +	TITLE Multi-host RAM Utilization +	FNPATTERN memory.real.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[swap] +	TITLE Swap Utilization +	YAXIS % Used +	DEF:p=memory.swap.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% Swap used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[swap-multi] +	TITLE Multi-host Swap Utilization +	FNPATTERN memory.swap.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[mem] +	TITLE Actual Memory Utilization +	YAXIS % Used +	DEF:p=memory.actual.rrd:realmempct:AVERAGE +	LINE2:p#0000FF:% Actual memory used +	-u 100 +	-b 1024 +	GPRINT:p:LAST: \: %5.1lf (cur) +	GPRINT:p:MAX: \: %5.1lf (max) +	GPRINT:p:MIN: \: %5.1lf (min) +	GPRINT:p:AVERAGE: \: %5.1lf (avg)\n + +[mem-multi] +	TITLE Multi-host Actual Memory Utilization +	FNPATTERN memory.actual.rrd +	YAXIS % Used +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	-b 1024 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[users] +	TITLE Users and Processes +	YAXIS # +	DEF:p=procs.rrd:la:AVERAGE +	DEF:u=users.rrd:la:AVERAGE +	AREA:p#00CC00:Processes +	LINE1:u#000099:Users +	COMMENT:\n +	GPRINT:p:LAST:Processes   \: %5.1lf%s (cur) +	GPRINT:p:MAX: \: %5.1lf%s (max) +	GPRINT:p:MIN: \: %5.1lf%s (min) +	GPRINT:p:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:u:LAST:Users       \: %5.1lf%s (cur) +	GPRINT:u:MAX: \: %5.1lf%s (max) +	GPRINT:u:MIN: \: %5.1lf%s (min) +	GPRINT:u:AVERAGE: \: %5.1lf%s (avg)\n + +[users-multi] +	TITLE Multi-host users +	FNPATTERN users.rrd +	YAXIS # +	DEF:u@RRDIDX@=@RRDFN@:la:AVERAGE +	LINE2:u@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:u@RRDIDX@:LAST:Users       \: %5.1lf%s (cur) +	GPRINT:u@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:u@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:u@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[tcp] +	# TCP tests - include all, except the HTTP tests as they tend to have +	# much longer response times than the normal tcp tests. +	FNPATTERN tcp.(.+).rrd +	EXFNPATTERN tcp.http.(.+).rrd +	TITLE TCP Connection Times +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[http] +	FNPATTERN tcp.http.(.+).rrd +	TITLE HTTP Response Times +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[conn-multi] +	FNPATTERN tcp.conn.rrd +	TITLE PING Round-trip time +	YAXIS Seconds +	DEF:p@RRDIDX@=@RRDFN@:sec:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf%s (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[ntpstat] +	TITLE NTP accuracy +	YAXIS Offset (ms) +	DEF:u=ntpstat.rrd:offsetms:AVERAGE +	LINE2:u#FF0000:Offset (ms) +	COMMENT:\n +	GPRINT:u:LAST: \: %5.2lf ms (cur)\n +	GPRINT:u:MAX: \: %5.2lf ms (max)\n +	GPRINT:u:MIN: \: %5.2lf ms (min)\n +	GPRINT:u:AVERAGE: \: %5.2lf ms (avg)\n + +[vmstat] +	TITLE CPU Utilization +	YAXIS % Load +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	AREA:cpu_sys#FF0000:System +	STACK:cpu_usr#FFFF00:User +	STACK:cpu_idl#00FF00:Idle +	COMMENT:\n +	GPRINT:cpu_sys:LAST:System  \: %5.1lf (cur) +	GPRINT:cpu_sys:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr:LAST:User    \: %5.1lf (cur) +	GPRINT:cpu_usr:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl:LAST:Idle    \: %5.1lf (cur) +	GPRINT:cpu_idl:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl:AVERAGE: \: %5.1lf (avg)\n + +[vmstat1] +	TITLE CPU Utilization +	YAXIS % Load +	-u 100 +	-r +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	DEF:cpu_wait=vmstat.rrd:cpu_wait:AVERAGE +	AREA:cpu_sys#FF0000:System +	STACK:cpu_wait#774400:I/O wait +	STACK:cpu_usr#FFFF00:User +	STACK:cpu_idl#00FF00:Idle +	COMMENT:\n +	GPRINT:cpu_sys:LAST:System  \: %5.1lf (cur) +	GPRINT:cpu_sys:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_wait:LAST:I/O Wait\: %5.1lf (cur) +	GPRINT:cpu_wait:MAX: \: %5.1lf (max) +	GPRINT:cpu_wait:MIN: \: %5.1lf (min) +	GPRINT:cpu_wait:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr:LAST:User    \: %5.1lf (cur) +	GPRINT:cpu_usr:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl:LAST:Idle    \: %5.1lf (cur) +	GPRINT:cpu_idl:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl:AVERAGE: \: %5.1lf (avg)\n + +[vmstat2] +	TITLE CPU Utilization +	YAXIS % Load +	-u 1.0 +	DEF:avg=la.rrd:la:AVERAGE +	CDEF:la=avg,100,/ +	DEF:cpu_idl=vmstat.rrd:cpu_idl:AVERAGE +	CDEF:cpu_idl2=cpu_idl,100,/ +	DEF:cpu_usr=vmstat.rrd:cpu_usr:AVERAGE +	CDEF:cpu_usr2=cpu_usr,100,/ +	DEF:cpu_sys=vmstat.rrd:cpu_sys:AVERAGE +	CDEF:cpu_sys2=cpu_sys,100,/ +	AREA:cpu_sys2#FF0000:System +	STACK:cpu_usr2#FFFF00:User +	STACK:cpu_idl2#00FF00:Idle +	LINE1:la#000099:CPU Load Average +	COMMENT:\n +	GPRINT:cpu_sys2:LAST:System           \: %5.1lf (cur) +	GPRINT:cpu_sys2:MAX: \: %5.1lf (max) +	GPRINT:cpu_sys2:MIN: \: %5.1lf (min) +	GPRINT:cpu_sys2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_usr2:LAST:User             \: %5.1lf (cur) +	GPRINT:cpu_usr2:MAX: \: %5.1lf (max) +	GPRINT:cpu_usr2:MIN: \: %5.1lf (min) +	GPRINT:cpu_usr2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:cpu_idl2:LAST:Idle             \: %5.1lf (cur) +	GPRINT:cpu_idl2:MAX: \: %5.1lf (max) +	GPRINT:cpu_idl2:MIN: \: %5.1lf (min) +	GPRINT:cpu_idl2:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:la:LAST:CPU Load Average \: %5.1lf (cur) +	GPRINT:la:MAX: \: %5.1lf (max) +	GPRINT:la:MIN: \: %5.1lf (min) +	GPRINT:la:AVERAGE: \: %5.1lf (avg)\n + +[vmstat3] +	TITLE Interrupts and Context Switches +	YAXIS Average Events/sec +	DEF:int=vmstat.rrd:cpu_int:AVERAGE +	DEF:csw=vmstat.rrd:cpu_csw:AVERAGE +	LINE2:int#0000ff:Interrupts +	LINE2:csw#00FF00:Context Switches +	COMMENT:\n +	GPRINT:int:LAST:Interrupts        \: %5.1lf%s (cur) +	GPRINT:int:MAX: \: %5.1lf%s (max) +	GPRINT:int:MIN: \: %5.1lf%s (min) +	GPRINT:int:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:csw:LAST:Context Switches  \: %5.1lf%s (cur) +	GPRINT:csw:MAX: \: %5.1lf%s (max) +	GPRINT:csw:MIN: \: %5.1lf%s (min) +	GPRINT:csw:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat4] +	TITLE Swap Activity +	YAXIS Average kB/s +	-b 1024 +	DEF:si=vmstat.rrd:mem_si:AVERAGE +	DEF:so=vmstat.rrd:mem_so:AVERAGE +	LINE2:si#0000ff:Memory Swapped from Disk +	LINE2:so#00FF00:Memory Swapped to Disk +	COMMENT:\n +	GPRINT:si:LAST:Memory Swapped from Disk  \: %5.1lf (cur) +	GPRINT:si:MAX: \: %5.1lf (max) +	GPRINT:si:MIN: \: %5.1lf (min) +	GPRINT:si:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:si:LAST:Memory Swapped to Disk    \: %5.1lf (cur) +	GPRINT:si:MAX: \: %5.1lf (max) +	GPRINT:si:MIN: \: %5.1lf (min) +	GPRINT:si:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat5] +	TITLE Block I/O +	YAXIS Average blocks/s +	DEF:bi=vmstat.rrd:dsk_bi:AVERAGE +	DEF:bo=vmstat.rrd:dsk_bo:AVERAGE +	LINE2:bi#0000FF:Blocks sent to a block device +	LINE2:bo#00FF00:Blocks received from a block device +	COMMENT:\n +	GPRINT:bi:LAST:Blocks sent to a block device        \: %5.1lf (cur) +	GPRINT:bi:MAX: \: %5.1lf (max) +	GPRINT:bi:MIN: \: %5.1lf (min) +	GPRINT:bi:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:bo:LAST:Blocks received from a block device  \: %5.1lf (cur) +	GPRINT:bo:MAX: \: %5.1lf (max) +	GPRINT:bo:MIN: \: %5.1lf (min) +	GPRINT:bo:AVERAGE: \: %5.1lf (avg)\n + +[vmstat6] +	# This graph only works on some OS'es (Solaris) +	TITLE Memory Utilization +	YAXIS Size kB +	-b 1024 +	DEF:free=vmstat.rrd:mem_free:AVERAGE +	CDEF:fr=free,1024,* +	DEF:swap=vmstat.rrd:mem_swap:AVERAGE +	CDEF:sw=swap,1024,* +	LINE2:fr#0000ff:Size of the free list +	LINE2:sw#00FF00:Swap space currently available +	COMMENT:\n +	GPRINT:fr:LAST:Size of the free list           \: %5.1lf%s (cur) +	GPRINT:fr:MAX: \: %5.1lf%s (max) +	GPRINT:fr:MIN: \: %5.1lf%s (min) +	GPRINT:fr:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:sw:LAST:Swap space currently available  \: %5.1lf%s (cur) +	GPRINT:sw:MAX: \: %5.1lf%s (max) +	GPRINT:sw:MIN: \: %5.1lf%s (min) +	GPRINT:sw:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat7] +	# This graph only works on some OS'es (Solaris) +	TITLE Memory Utilization +	YAXIS Events/s +	DEF:re=vmstat.rrd:mem_re:AVERAGE +	DEF:mf=vmstat.rrd:mem_mf:AVERAGE +	LINE2:re#0000ff:Page reclaims +	LINE2:mf#00FF00:Minor faults +	COMMENT:\n +	GPRINT:re:LAST:Page reclaims  \: %5.1lf%s (cur) +	GPRINT:re:MAX: \: %5.1lf%s (max) +	GPRINT:re:MIN: \: %5.1lf%s (min) +	GPRINT:re:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:mf:LAST:Minor faults   \: %5.1lf%s (cur) +	GPRINT:mf:MAX: \: %5.1lf%s (max) +	GPRINT:mf:MIN: \: %5.1lf%s (min) +	GPRINT:mf:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat8] +	# This graph only works on some OS'es (Solaris) +	TITLE Paging Activity +	YAXIS kB/s +	-b 1024 +	DEF:pi=vmstat.rrd:mem_pi:AVERAGE +	CDEF:rpi=pi,1024,* +	DEF:po=vmstat.rrd:mem_po:AVERAGE +	CDEF:rpo=po,1024,* +	LINE2:rpi#0000ff:Paged in +	LINE2:rpo#00FF00:Paged out +	COMMENT:\n +	GPRINT:pi:LAST:Page Ins   \: %5.1lf%s (cur) +	GPRINT:pi:MAX: \: %5.1lf%s (max) +	GPRINT:pi:MIN: \: %5.1lf%s (min) +	GPRINT:pi:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:po:LAST:Page Outs  \: %5.1lf%s (cur) +	GPRINT:po:MAX: \: %5.1lf%s (max) +	GPRINT:po:MIN: \: %5.1lf%s (min) +	GPRINT:po:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat9] +	# This graph only works on some OS'es (Solaris) +	TITLE RAM Scan Rate +	YAXIS Pages scanned/s +	DEF:sr=vmstat.rrd:sr:AVERAGE +	AREA:sr#00CC00:Scan Rate +	-u 20 +	GPRINT:sr:LAST: \: %5.1lf%s (cur) +	GPRINT:sr:MAX: \: %5.1lf%s (max) +	GPRINT:sr:MIN: \: %5.1lf%s (min) +	GPRINT:sr:AVERAGE: \: %5.1lf%s (avg)\n + +[vmstat0] +	# This graph only works on some OS'es (Solaris) +	TITLE System Calls +	YAXIS System Calls/s +	DEF:cpu_syc=vmstat.rrd:cpu_syc:AVERAGE +	AREA:cpu_syc#00CC00:System Calls +	GPRINT:cpu_syc:LAST: \: %5.1lf%s (cur) +	GPRINT:cpu_syc:MAX: \: %5.1lf%s (max) +	GPRINT:cpu_syc:MIN: \: %5.1lf%s (min) +	GPRINT:cpu_syc:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat] +	TITLE TCP/IP statistics +	YAXIS Packets/second +	DEF:tcpInInorderPackets=netstat.rrd:tcpInInorderPackets:AVERAGE +	DEF:tcpOutDataPackets=netstat.rrd:tcpOutDataPackets:AVERAGE +	DEF:tcpRetransPackets=netstat.rrd:tcpRetransPackets:AVERAGE +	LINE3:tcpInInorderPackets#00FF00:In  +	LINE1:tcpOutDataPackets#0000FF:Out  +	LINE2:tcpRetransPackets#FF0000:Retrans  +	COMMENT:\n +	GPRINT:tcpInInorderPackets:LAST:In       \: %5.1lf%s (cur) +	GPRINT:tcpInInorderPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpInInorderPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpInInorderPackets:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpOutDataPackets:LAST:Out      \: %5.1lf%s (cur) +	GPRINT:tcpOutDataPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpOutDataPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpOutDataPackets:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpRetransPackets:LAST:Retrans  \: %5.1lf%s (cur) +	GPRINT:tcpRetransPackets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpRetransPackets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpRetransPackets:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat0] +	TITLE TCP/IP statistics +	YAXIS Bits/second +	DEF:tcpInInorderBytes=netstat.rrd:tcpInInorderBytes:AVERAGE +	DEF:tcpOutDataBytes=netstat.rrd:tcpOutDataBytes:AVERAGE +	DEF:tcpRetransBytes=netstat.rrd:tcpRetransBytes:AVERAGE +	CDEF:tcpInInorderBits=tcpInInorderBytes,8,* +	CDEF:tcpOutDataBits=tcpOutDataBytes,8,* +	CDEF:tcpRetransBits=tcpRetransBytes,8,* +	LINE3:tcpInInorderBits#00FF00:In  +	LINE1:tcpOutDataBits#0000FF:Out  +	LINE2:tcpRetransBits#FF0000:Retrans  +	COMMENT:\n +	GPRINT:tcpInInorderBits:LAST:In       \: %5.1lf%s (cur) +	GPRINT:tcpInInorderBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpInInorderBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpInInorderBits:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpOutDataBits:LAST:Out      \: %5.1lf%s (cur) +	GPRINT:tcpOutDataBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpOutDataBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpOutDataBits:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpRetransBits:LAST:Retrans  \: %5.1lf%s (cur) +	GPRINT:tcpRetransBits:MAX: \: %5.1lf%s (max) +	GPRINT:tcpRetransBits:MIN: \: %5.1lf%s (min) +	GPRINT:tcpRetransBits:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat1] +	TITLE UDP Statistics +	YAXIS # Datagrams +	DEF:udpInDatagrams=netstat.rrd:udpInDatagrams:AVERAGE +	DEF:udpOutDatagrams=netstat.rrd:udpOutDatagrams:AVERAGE +	DEF:udpInErrors=netstat.rrd:udpInErrors:AVERAGE +	LINE3:udpInDatagrams#00FF00:UDP In Datagrams +	LINE1:udpOutDatagrams#0000FF:UDP Out Datagrams +	LINE2:udpInErrors#FF0000:UDP In Errors +	COMMENT:\n +	GPRINT:udpInDatagrams:LAST:UDP In Datagrams       \: %5.1lf%s (cur) +	GPRINT:udpInDatagrams:MAX: \: %5.1lf%s (max) +	GPRINT:udpInDatagrams:MIN: \: %5.1lf%s (min) +	GPRINT:udpInDatagrams:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:udpOutDatagrams:LAST:UDP Out Datagrams      \: %5.1lf%s (cur) +	GPRINT:udpOutDatagrams:MAX: \: %5.1lf%s (max) +	GPRINT:udpOutDatagrams:MIN: \: %5.1lf%s (min) +	GPRINT:udpOutDatagrams:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:udpInErrors:LAST:UDP In Errors          \: %5.1lf%s (cur) +	GPRINT:udpInErrors:MAX: \: %5.1lf%s (max) +	GPRINT:udpInErrors:MIN: \: %5.1lf%s (min) +	GPRINT:udpInErrors:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat2] +	TITLE TCP Statistics +	YAXIS # Events +	DEF:tcpActiveOpens=netstat.rrd:tcpActiveOpens:AVERAGE +	DEF:tcpPassiveOpens=netstat.rrd:tcpPassiveOpens:AVERAGE +	DEF:tcpAttemptFails=netstat.rrd:tcpAttemptFails:AVERAGE +	DEF:tcpEstabResets=netstat.rrd:tcpEstabResets:AVERAGE +	LINE2:tcpActiveOpens#0000FF:TCP Active Open +	LINE2:tcpPassiveOpens#000088:TCP Passive Open +	LINE2:tcpAttemptFails#FF0000:TCP Attempts Fail +	LINE2:tcpEstabResets#88FF00:TCP Established Resets +	COMMENT:\n +	GPRINT:tcpActiveOpens:LAST:TCP Active Opens            \: %5.1lf%s (cur) +	GPRINT:tcpActiveOpens:MAX: \: %5.1lf%s (max) +	GPRINT:tcpActiveOpens:MIN: \: %5.1lf%s (min) +	GPRINT:tcpActiveOpens:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpPassiveOpens:LAST:TCP Passive Opens           \: %5.1lf%s (cur) +	GPRINT:tcpPassiveOpens:MAX: \: %5.1lf%s (max) +	GPRINT:tcpPassiveOpens:MIN: \: %5.1lf%s (min) +	GPRINT:tcpPassiveOpens:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpAttemptFails:LAST:TCP Failed Attempts         \: %5.1lf%s (cur) +	GPRINT:tcpAttemptFails:MAX: \: %5.1lf%s (max) +	GPRINT:tcpAttemptFails:MIN: \: %5.1lf%s (min) +	GPRINT:tcpAttemptFails:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:tcpEstabResets:LAST:TCP Established Resets      \: %5.1lf%s (cur) +	GPRINT:tcpEstabResets:MAX: \: %5.1lf%s (max) +	GPRINT:tcpEstabResets:MIN: \: %5.1lf%s (min) +	GPRINT:tcpEstabResets:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat3] +	TITLE Established TCP Connections +	YAXIS # Connections +	DEF:tcpCurrEstab=netstat.rrd:tcpCurrEstab:AVERAGE +	LINE2:tcpCurrEstab#0000FF:TCP Established Connections +	COMMENT:\n +	GPRINT:tcpCurrEstab:LAST:TCP Established Connections \: %5.1lf%s (cur) +	GPRINT:tcpCurrEstab:MAX: \: %5.1lf%s (max) +	GPRINT:tcpCurrEstab:MIN: \: %5.1lf%s (min) +	GPRINT:tcpCurrEstab:AVERAGE: \: %5.1lf%s (avg)\n + +[netstat3-multi] +	TITLE Multi-host TCP Connections +	YAXIS # Connections +	FNPATTERN netstat.rrd +	DEF:tcpCurrEstab@RRDIDX@=@RRDFN@:tcpCurrEstab:AVERAGE +	LINE2:tcpCurrEstab@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:tcpCurrEstab@RRDIDX@:LAST:# Est. \: %5.1lf%s (cur) +	GPRINT:tcpCurrEstab@RRDIDX@:MAX: \: %5.1lf%s (max) +	GPRINT:tcpCurrEstab@RRDIDX@:MIN: \: %5.1lf%s (min) +	GPRINT:tcpCurrEstab@RRDIDX@:AVERAGE: \: %5.1lf%s (avg)\n + +[iostat] +	TITLE I/O Utilization +	YAXIS Stats +	FNPATTERN iostat.(.+).rrd +	DEF:p@RRDIDX@B=@RRDFN@:b:AVERAGE +	DEF:p@RRDIDX@A=@RRDFN@:asvc_t:AVERAGE +	DEF:p@RRDIDX@W=@RRDFN@:wsvc_t:AVERAGE +	CDEF:p@RRDIDX@t=p@RRDIDX@B,5,GT,p@RRDIDX@B,UNKN,IF +	LINE2:p@RRDIDX@t#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:p@RRDIDX@B:LAST:B       \: %5.1lf (cur) +	GPRINT:p@RRDIDX@B:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@B:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@B:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:p@RRDIDX@A:LAST:asvc_t  \: %5.1lf (cur) +	GPRINT:p@RRDIDX@A:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@A:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@A:AVERAGE: \: %5.1lf (avg)\n +	GPRINT:p@RRDIDX@W:LAST:wsvc_t  \: %5.1lf (cur) +	GPRINT:p@RRDIDX@W:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@W:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@W:AVERAGE: \: %5.1lf (avg)\n +	COMMENT:\n + +[apache] +	TITLE Apache Utilization +	YAXIS Activity +	DEF:TA=apache.rrd:TA:AVERAGE +	CDEF:TA1=TA,300,* +	DEF:TKB=apache.rrd:TKB:AVERAGE +	CDEF:TKB1=TKB,300,* +	LINE2:TA1#0000FF:TA (# Accesses) +	LINE2:TKB1#FF0000:TKB (kBytes Transferred) +	COMMENT:\n +	GPRINT:TA1:LAST:TA    \: %5.1lf%s (cur) +	GPRINT:TA1:MAX: \: %5.1lf%s (max) +	GPRINT:TA1:MIN: \: %5.1lf%s (min) +	GPRINT:TA1:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:TKB1:LAST:TKB   \: %5.1lf%s (cur) +	GPRINT:TKB1:MAX: \: %5.1lf%s (max) +	GPRINT:TKB1:MIN: \: %5.1lf%s (min) +	GPRINT:TKB1:AVERAGE: \: %5.1lf%s (avg)\n + +[apache1] +	TITLE Apache Workers +	YAXIS # Worker Threads/Processes +	#DEF:BS=apache.rrd:BS:AVERAGE +	#DEF:IS=apache.rrd:IS:AVERAGE +	DEF:BW=apache.rrd:BW:AVERAGE +	DEF:IW=apache.rrd:IW:AVERAGE +	#LINE2:BS#00CC00:BS +	#LINE2:IS#FF00FF:IS +	LINE2:BW#555555:BW Busy Workers +	LINE2:IW#880000:IW Idle Workers +	COMMENT:\n +	GPRINT:BW:LAST:BW   \: %5.1lf%s (cur) +	GPRINT:BW:MAX: \: %5.1lf%s (max) +	GPRINT:BW:MIN: \: %5.1lf%s (min) +	GPRINT:BW:AVERAGE: \: %5.1lf%s (avg)\n +	GPRINT:IW:LAST:IW   \: %5.1lf%s (cur) +	GPRINT:IW:MAX: \: %5.1lf%s (max) +	GPRINT:IW:MIN: \: %5.1lf%s (min) +	GPRINT:IW:AVERAGE: \: %5.1lf%s (avg)\n + +[apache2] +	TITLE Apache CPU Utilization +	YAXIS CPU Load +	DEF:CPU=apache.rrd:CPU:AVERAGE +	LINE2:CPU#000088:CPU +	COMMENT:\n +	GPRINT:CPU:LAST:CPU   \: %5.1lf (cur) +	GPRINT:CPU:MAX: \: %5.1lf (max) +	GPRINT:CPU:MIN: \: %5.1lf (min) +	GPRINT:CPU:AVERAGE: \: %5.1lf (avg)\n + +[apache3] +	TITLE Apache Requests/Second +	YAXIS # Requests +	DEF:RPS=apache.rrd:REQPERSEC:AVERAGE +	LINE2:RPS#000088:RPS +	COMMENT:\n +	GPRINT:RPS:LAST:Requests per Second   \: %5.1lf (cur) +	GPRINT:RPS:MAX: \: %5.1lf (max) +	GPRINT:RPS:MIN: \: %5.1lf (min) +	GPRINT:RPS:AVERAGE: \: %5.1lf (avg)\n + +[apache3-multi] +	TITLE Multi-Host Apache Requests/Second +	FNPATTERN apache.rrd +	YAXIS # Requests / seconds +	# --slope-mode +	DEF:RPS@RRDIDX@=@RRDFN@:REQPERSEC:AVERAGE +	LINE2:RPS@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:RPS@RRDIDX@:LAST:Requests per Second  \: %5.1lf (cur) +	GPRINT:RPS@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:RPS@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:RPS@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[bea] +	FNPATTERN bea.memory.(.+).rrd +	TITLE BEA/Weblogic % Heap Free +	YAXIS % Free +	DEF:free@RRDIDX@=@RRDFN@:freeheap:AVERAGE +	DEF:used@RRDIDX@=@RRDFN@:usedheap:AVERAGE +	DEF:total@RRDIDX@=@RRDFN@:totalheap:AVERAGE +	CDEF:mbfree@RRDIDX@=free@RRDIDX@,1048576,/ +	CDEF:mbused@RRDIDX@=used@RRDIDX@,1048576,/ +	CDEF:mbtotal@RRDIDX@=total@RRDIDX@,1048576,/ +	CDEF:pctfree@RRDIDX@=mbfree@RRDIDX@,100,*,mbtotal@RRDIDX@,/ +	LINE2:pctfree@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:mbused@RRDIDX@:LAST:Used \: %8.1lf MB (cur) +	GPRINT:mbused@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbused@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbused@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n +	GPRINT:mbfree@RRDIDX@:LAST:Free \: %8.1lf MB (cur) +	GPRINT:mbfree@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbfree@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbfree@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n + +[bea2] +	FNPATTERN bea.memory.(.+).rrd +	TITLE BEA/Weblogic % Physical Memory Free +	YAXIS % Free +	DEF:free@RRDIDX@=@RRDFN@:freephysmem:AVERAGE +	DEF:used@RRDIDX@=@RRDFN@:usedphysmem:AVERAGE +	DEF:total@RRDIDX@=@RRDFN@:totalphysmem:AVERAGE +	CDEF:mbfree@RRDIDX@=free@RRDIDX@,1048576,/ +	CDEF:mbused@RRDIDX@=used@RRDIDX@,1048576,/ +	CDEF:mbtotal@RRDIDX@=total@RRDIDX@,1048576,/ +	CDEF:pctfree@RRDIDX@=mbfree@RRDIDX@,100,*,mbtotal@RRDIDX@,/ +	LINE2:pctfree@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:mbused@RRDIDX@:LAST:Used \: %8.1lf MB (cur) +	GPRINT:mbused@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbused@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbused@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n +	GPRINT:mbfree@RRDIDX@:LAST:Free \: %8.1lf MB (cur) +	GPRINT:mbfree@RRDIDX@:MAX: \: %8.1lf MB (max) +	GPRINT:mbfree@RRDIDX@:MIN: \: %8.1lf MB (min) +	GPRINT:mbfree@RRDIDX@:AVERAGE: \: %8.1lf MB (avg)\n + +[bea3] +	FNPATTERN bea.threads.(.+).weblogic.kernel.Default.rrd +	TITLE BEA/Weblogic kernel.Default Idle Threads +	YAXIS # Idle Threads +	DEF:threads@RRDIDX@=@RRDFN@:currentidlecount:AVERAGE +	LINE2:threads@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:threads@RRDIDX@:LAST:Free \: %4.2lf (cur) +	GPRINT:threads@RRDIDX@:MAX: \: %4.2lf (max) +	GPRINT:threads@RRDIDX@:MIN: \: %4.2lf (min) +	GPRINT:threads@RRDIDX@:AVERAGE: \: %4.2lf (avg)\n + +[bea4] +	FNPATTERN bea.threads.(.+).weblogic.kernel.Default.rrd +	TITLE BEA/Weblogic kernel.Default Requests +	YAXIS # Requests +	DEF:reqs@RRDIDX@=@RRDFN@:totalcount:AVERAGE +	LINE2:reqs@RRDIDX@#@COLOR@:@RRDPARAM@ +	COMMENT:\n +	GPRINT:reqs@RRDIDX@:LAST:Free \: %4.2lf (cur) +	GPRINT:reqs@RRDIDX@:MAX: \: %4.2lf (max) +	GPRINT:reqs@RRDIDX@:MIN: \: %4.2lf (min) +	GPRINT:reqs@RRDIDX@:AVERAGE: \: %4.2lf (avg)\n + +[bind] +	TITLE BIND Utilization +	YAXIS Stats +	DEF:A=bind.rrd:A:AVERAGE +	DEF:ANY=bind.rrd:ANY:AVERAGE +	DEF:AXFR=bind.rrd:AXFR:AVERAGE +	DEF:MX=bind.rrd:MX:AVERAGE +	DEF:O=bind.rrd:O:AVERAGE +	DEF:PTR=bind.rrd:PTR:AVERAGE +	DEF:SOA=bind.rrd:SOA:AVERAGE +	CDEF:A1=A,300,* +	CDEF:ANY1=ANY,300,* +	CDEF:AXFR1=AXFR,300,* +	CDEF:MX1=MX,300,* +	CDEF:O1=O,300,* +	CDEF:PTR1=PTR,300,* +	CDEF:SOA1=SOA,300,* +	LINE2:A1#0000FF:A +	LINE2:ANY1#FF0000:ANY +	LINE2:AXFR1#00CC00:AXFR +	LINE2:MX1#FF00FF:MX +	LINE2:O1#555555:O +	LINE2:PTR1#880000:PTR +	LINE2:SOA1#000088:SOA +	COMMENT:\n +	GPRINT:A1:LAST:A     \: %5.1lf (cur)  +	GPRINT:A1:MAX:A    \: %5.1lf (max)  +	GPRINT:A1:MIN:A     \: %5.1lf (min)  +	GPRINT:A1:AVERAGE:A     \: %5.1lf (avg)\n +	GPRINT:ANY1:LAST:ANY   \: %5.1lf (cur)  +	GPRINT:ANY1:MAX:ANY  \: %5.1lf (max)  +	GPRINT:ANY1:MIN:ANY   \: %5.1lf (min)  +	GPRINT:ANY1:AVERAGE:ANY   \: %5.1lf (avg)\n +	GPRINT:AXFR1:LAST:AXFR  \: %5.1lf (cur)  +	GPRINT:AXFR1:MAX:AXFR \: %5.1lf (max)  +	GPRINT:AXFR1:MIN:AXFR  \: %5.1lf (min)  +	GPRINT:AXFR1:AVERAGE:AXFR  \: %5.1lf (avg)\n +	GPRINT:MX1:LAST:MX    \: %5.1lf (cur)  +	GPRINT:MX1:MAX:MX   \: %5.1lf (max)  +	GPRINT:MX1:MIN:MX    \: %5.1lf (min)  +	GPRINT:MX1:AVERAGE:MX    \: %5.1lf (avg)\n +	GPRINT:O1:LAST:O     \: %5.1lf (cur)  +	GPRINT:O1:MAX:O    \: %5.1lf (max)  +	GPRINT:O1:MIN:O     \: %5.1lf (min)  +	GPRINT:O1:AVERAGE:O     \: %5.1lf (avg)\n +	GPRINT:PTR1:LAST:PTR   \: %5.1lf (cur)  +	GPRINT:PTR1:MAX:PTR  \: %5.1lf (max)  +	GPRINT:PTR1:MIN:PTR   \: %5.1lf (min)  +	GPRINT:PTR1:AVERAGE:PTR   \: %5.1lf (avg)\n +	GPRINT:SOA1:LAST:SOA   \: %5.1lf (cur)  +	GPRINT:SOA1:MAX:SOA  \: %5.1lf (max)  +	GPRINT:SOA1:MIN:SOA   \: %5.1lf (min)  +	GPRINT:SOA1:AVERAGE:SOA   \: %5.1lf (avg)\n + +[sendmail] +	FNPATTERN sendmail.(.+).rrd +	TITLE Sendmail Activity +	YAXIS Messages +	DEF:p@RRDIDX@IN=@RRDFN@:msgsfr:AVERAGE +	DEF:p@RRDIDX@OUT=@RRDFN@:msgsto:AVERAGE +	CDEF:p@RRDIDX@IN1=p@RRDIDX@IN,300,* +	CDEF:p@RRDIDX@OUT1=p@RRDIDX@OUT,300,* +	LINE1:p@RRDIDX@IN1#@COLOR@:@RRDPARAM@ IN +	LINE2:p@RRDIDX@OUT1#@COLOR@:@RRDPARAM@ OUT +	COMMENT:\n +	GPRINT:p@RRDIDX@IN1:LAST:@RRDPARAM@ in   %5.1lf (cur) +	GPRINT:p@RRDIDX@IN1:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@IN1:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@IN1:AVERAGE: \: %5.1lf (avg) +	COMMENT:\n +	GPRINT:p@RRDIDX@OUT1:LAST:@RRDPARAM@ out  %5.1lf (cur) +	GPRINT:p@RRDIDX@OUT1:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@OUT1:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@OUT1:AVERAGE: \: %5.1lf (avg)\n +	COMMENT:\n + +[sendmail1] +        FNPATTERN sendmail.(.+).rrd +        TITLE Sendmail Reject/Discards +        YAXIS Messages +        DEF:p@RRDIDX@IN=@RRDFN@:msgsrej:AVERAGE +        DEF:p@RRDIDX@OUT=@RRDFN@:msgsdis:AVERAGE +        CDEF:p@RRDIDX@IN1=p@RRDIDX@IN,300,* +        CDEF:p@RRDIDX@OUT1=p@RRDIDX@OUT,300,* +        LINE1:p@RRDIDX@IN1#@COLOR@:@RRDPARAM@ REJ +        LINE2:p@RRDIDX@OUT1#@COLOR@:@RRDPARAM@ DIS +        COMMENT:\n +        GPRINT:p@RRDIDX@IN1:LAST:@RRDPARAM@ rej  %5.1lf (cur) +        GPRINT:p@RRDIDX@IN1:MAX: \: %5.1lf (max) +        GPRINT:p@RRDIDX@IN1:MIN: \: %5.1lf (min) +        GPRINT:p@RRDIDX@IN1:AVERAGE: \: %5.1lf (avg) +        COMMENT:\n +        GPRINT:p@RRDIDX@OUT1:LAST:@RRDPARAM@ dis  %5.1lf (cur) +        GPRINT:p@RRDIDX@OUT1:MAX: \: %5.1lf (max) +        GPRINT:p@RRDIDX@OUT1:MIN: \: %5.1lf (min) +        GPRINT:p@RRDIDX@OUT1:AVERAGE: \: %5.1lf (avg)\n +        COMMENT:\n + +[mailq] +	# This handles "mailq.rrd", "mailqin.rrd" and "mailqout.rrd" +	FNPATTERN mailq(.+).rrd +	TITLE Mail Queue Length +	YAXIS Queue Length +	DEF:mailq@RRDIDX@=@RRDFN@:mailq:AVERAGE +	LINE2:mailq@RRDIDX@#@COLOR@:Queue Length @RRDPARAM@ +	COMMENT:\n +	GPRINT:mailq@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:mailq@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:mailq@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:mailq@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + + +[iishealth] +	# Based on the "IIShealth.zip" tool from deadcat +	FNPATTERN iishealth.(.+).rrd +	TITLE IIS Utilization +	YAXIS # +	# Yes, they really do call it "realmempct". Cut'n'paste programming. +	DEF:p@RRDIDX@=@RRDFN@:realmempct:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	-u 100 +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[temperature] +	FNPATTERN temperature.(.+).rrd +	TITLE Temperature +	YAXIS Celsius +	DEF:p@RRDIDX@=@RRDFN@:temperature:AVERAGE +	LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:p@RRDIDX@:LAST: \: %5.1lf (cur) +	GPRINT:p@RRDIDX@:MAX: \: %5.1lf (max) +	GPRINT:p@RRDIDX@:MIN: \: %5.1lf (min) +	GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +# If you want your temperature graphs in Fahrenheit, +# comment out the [temperature] section above, and  +# uncomment this definition. +# +#[temperature] +#	FNPATTERN temperature.(.+).rrd +#	TITLE Temperature +#	YAXIS Fahrenheit +#	DEF:p@RRDIDX@=@RRDFN@:temperature:AVERAGE +#	CDEF:tempf@RRDIDX@=9,5,/,p@RRDIDX@,*,32,+ +#	LINE2:tempf@RRDIDX@#@COLOR@:@RRDPARAM@ +#	GPRINT:tempf@RRDIDX@:LAST: \: %5.1lf (cur) +#	GPRINT:tempf@RRDIDX@:MAX: \: %5.1lf (max) +#	GPRINT:tempf@RRDIDX@:MIN: \: %5.1lf (min) +#	GPRINT:tempf@RRDIDX@:AVERAGE: \: %5.1lf (avg)\n + +[citrix] +	TITLE Citrix Users +	YAXIS # Users +	DEF:u=citrix.rrd:users:AVERAGE +	LINE2:u#FF0000:Users +	COMMENT:\n +	GPRINT:u:LAST: \: %5.1lf (cur) +	GPRINT:u:MAX: \: %5.1lf (max) +	GPRINT:u:MIN: \: %5.1lf (min) +	GPRINT:u:AVERAGE: \: %5.1lf (avg)\n + +[bbgen] +	TITLE bbgen Runtime +	YAXIS Seconds +	DEF:rt=bbgen.rrd:runtime:AVERAGE +	AREA:rt#00CCCC:Run Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[bbtest] +	TITLE bbtest Run Time +	YAXIS Seconds +	DEF:rt=bbtest.rrd:runtime:AVERAGE +	AREA:rt#00CCCC:Run Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[bbproxy] +	TITLE bbproxy Average Queue Time +	YAXIS Seconds +	DEF:rt=bbproxy.rrd:runtime:AVERAGE +	LINE2:rt#00CCCC:Queue Time +	COMMENT:\n +	GPRINT:rt:LAST: \: %5.1lf (cur) +	GPRINT:rt:MAX: \: %5.1lf (max) +	GPRINT:rt:MIN: \: %5.1lf (min) +	GPRINT:rt:AVERAGE: \: %5.1lf (avg)\n + +[hobbitd] +	TITLE hobbitd Incoming Messages +	YAXIS Messages +	DEF:in=hobbitd.rrd:inmessages:AVERAGE +	LINE2:in#00CCCC:Incoming messages +	COMMENT:\n +	GPRINT:in:LAST: \: %5.1lf (cur) +	GPRINT:in:MAX: \: %5.1lf (max) +	GPRINT:in:MIN: \: %5.1lf (min) +	GPRINT:in:AVERAGE: \: %5.1lf (avg)\n + +[mrtg] +	FNPATTERN mrtg.*\.(.+).rrd +	TITLE Network Traffic (MRTG) +	YAXIS Bits/second +	DEF:inbytes@RRDIDX@=@RRDFN@:ds0:AVERAGE +	CDEF:in@RRDIDX@=inbytes@RRDIDX@,8,* +	DEF:outbytes@RRDIDX@=@RRDFN@:ds1:AVERAGE +	CDEF:out@RRDIDX@=outbytes@RRDIDX@,8,* +	LINE2:in@RRDIDX@#@COLOR@:@RRDPARAM@  inbound +	GPRINT:in@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:in@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:in@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:in@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n +	LINE2:out@RRDIDX@#@COLOR@:@RRDPARAM@ outbound +	GPRINT:out@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:out@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:out@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:out@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[mysqlslow] +	DEF:slow=mysql.rrd:Slowqueries:AVERAGE +	TITLE MySQL Slow Queries +	YAXIS # +	LINE2:slow#00CCCC:Slow Queries +	COMMENT:\n +	GPRINT:slow:LAST: \: %5.1lf (cur) +	GPRINT:slow:MAX: \: %5.1lf (max) +	GPRINT:slow:MIN: \: %5.1lf (min) +	GPRINT:slow:AVERAGE: \: %5.1lf (avg)\n + +[mysqlthread] +	DEF:threads=mysql.rrd:Threads:AVERAGE +	TITLE MySQL Active Threads +	YAXIS # +	AREA:threads#00CCCC:Threads +	COMMENT:\n +	GPRINT:threads:LAST: \: %5.1lf (cur) +	GPRINT:threads:MAX: \: %5.1lf (max) +	GPRINT:threads:MIN: \: %5.1lf (min) +	GPRINT:threads:AVERAGE: \: %5.1lf (avg)\n + +[ifstat] +	FNPATTERN ifstat.(.+).rrd +	TITLE Network Traffic +	YAXIS Bits/second +	DEF:inbytes@RRDIDX@=@RRDFN@:bytesReceived:AVERAGE +	CDEF:in@RRDIDX@=inbytes@RRDIDX@,8,* +	DEF:outbytes@RRDIDX@=@RRDFN@:bytesSent:AVERAGE +	CDEF:out@RRDIDX@=outbytes@RRDIDX@,8,* +	LINE2:in@RRDIDX@#@COLOR@:@RRDPARAM@  inbound +	GPRINT:in@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:in@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:in@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:in@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n +	LINE2:out@RRDIDX@#@COLOR@:@RRDPARAM@ outbound +	GPRINT:out@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:out@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:out@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:out@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[files] +	FNPATTERN filesizes.(.+).rrd +	TITLE File/Directory sizes +	YAXIS KB +	DEF:sz@RRDIDX@=@RRDFN@:size:AVERAGE +	LINE2:sz@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:sz@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:sz@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:sz@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:sz@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[processes] +	FNPATTERN processes.(.+).rrd +	TITLE Process counts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:cnt@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:cnt@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:cnt@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[ports] +	FNPATTERN ports.(.+).rrd +	TITLE Network port counts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: \: %10.1lf (cur) +	GPRINT:cnt@RRDIDX@:MAX: \: %10.1lf (max) +	GPRINT:cnt@RRDIDX@:MIN: \: %10.1lf (min) +	GPRINT:cnt@RRDIDX@:AVERAGE: \: %10.1lf (avg)\n + +[lines] +	FNPATTERN lines.(.+).rrd +	TITLE Logfile linecounts +	YAXIS # +	DEF:cnt@RRDIDX@=@RRDFN@:count:AVERAGE +	LINE2:cnt@RRDIDX@#@COLOR@:@RRDPARAM@ +	GPRINT:cnt@RRDIDX@:LAST: %6.1lf (cur) \: +	GPRINT:cnt@RRDIDX@:MAX: %6.1lf (max) \: +	GPRINT:cnt@RRDIDX@:MIN: %6.1lf (min) \: +	GPRINT:cnt@RRDIDX@:AVERAGE: %6.1lf (avg)\n + + diff --git a/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg new file mode 100644 index 0000000..96e4681 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg @@ -0,0 +1,240 @@ +# +# The hobbitlaunch.cfg file is loaded by "hobbitlaunch". +# It controls which of the Hobbit modules to run, how often, and +# with which parameters, options and environment variables. +# + +# This is the main Hobbit daemon. This must be running on at least +# one server in your setup. If you are setting up a server to do +# just network tests or run bbproxy, it is OK to disable this (then +# you also need to remove the "NEEDS hobbitd" lines for the tasks +# you want to run). +[hobbitd] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD hobbitd --pidfile=$BBSERVERLOGS/hobbitd.pid --restart=$BBTMP/hobbitd.chk --checkpoint-file=$BBTMP/hobbitd.chk --checkpoint-interval=600 --log=$BBSERVERLOGS/hobbitd.log --admin-senders=127.0.0.1,$BBSERVERIP --store-clientlogs=!msgs + + +# "bbstatus" saves status-logs in text- and html-format, like the old Big Brother  +# daemon does. Unless you are using add-ons that directly access the log-files, you  +# will not need to run this module, and it is recommended that you keep it disabled +# since storing the raw logs on disk can cause a significant load on your server. + +[bbstatus] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=status --log=$BBSERVERLOGS/status.log hobbitd_filestore --status --html + + +# "bbhistory" keeps track of the status changes that happen, in a manner that is +# compatible with the Big Brother history logs. You probably do want to run this. + +[bbhistory] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=stachg --log=$BBSERVERLOGS/history.log hobbitd_history + + +# "hostdata" stores the Hobbit client messages on disk when some status for a host +# changes. This lets you access a lot of data collected from a host around the time +# when a problem occurred. However, it may use a significant amount of disk space +# if you have lots of Hobbit clients. +# Note: The --store-clientlogs option for the [hobbitd] provides control over +#       which status-changes will cause a client message to be stored. +[hostdata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=clichg --log=$BBSERVERLOGS/hostdata.log hobbitd_hostdata + + +# "bbdata" saves information sent using the BB "data" protocol, like the old Big Brother  +# daemon does. Unless you are using add-ons that directly access the data-files, you  +# will not need to run this module, and it is recommended that you keep it disabled +# since storing the raw data on disk can cause a significant load on your BB server. +# RRD graphs uses data-files, but since RRD is handled by the hobbitd_rrd module, you do +# not need to run the "bbdata" module to get RRD graphs. + +[bbdata] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=data   --log=$BBSERVERLOGS/data.log hobbitd_filestore --data + + +# "bbnotes" saves web note-files, that are sent using the BB "notes" protocol. This is +# disabled by default; if you use the BB "notes" protocol, then you should enable this. + +[bbnotes] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=notes  --log=$BBSERVERLOGS/notes.log hobbitd_filestore --notes + + +# "bbenadis" updates the files used to indicate that a host or test has been enabled or disabled. +# Unless you are running server side scripts that look at these files, you do not need this. + +[bbenadis] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=enadis --log=$BBSERVERLOGS/enadis.log hobbitd_filestore --enadis + + +# "bbpage" sends out alerts. Note that this module is NOT compatible with the old Big Brother +# system - it uses a different configuration file to determine how alerts get sent. If you want +# alerts to go out via pager, e-mail or some other means, then you must run this module. + +[bbpage] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=page  --log=$BBSERVERLOGS/page.log hobbitd_alert --checkpoint-file=$BBTMP/alert.chk --checkpoint-interval=600 + + +# "rrdstatus" updates RRD files with information that arrives as "status" messages. +# If you want RRD graphs of your monitoring data, then you want to run this. + +[rrdstatus] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=status --log=$BBSERVERLOGS/rrd-status.log hobbitd_rrd --rrddir=$BBVAR/rrd + +# "rrddata" updates RRD files with information that arrives as "data" messages. +# If you want RRD graphs of your monitoring BB data, then you want to run this. + +[rrddata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=data   --log=$BBSERVERLOGS/rrd-data.log hobbitd_rrd --rrddir=$BBVAR/rrd + +# The client back-end module. You need this if you are running the Hobbit client on any system. +[clientdata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=client --log=$BBSERVERLOGS/clientdata.log hobbitd_client + + +# "bbproxy" is the Hobbit proxy server that allows you to forward status messages +# from a protected network to your Hobbit server. It is not enabled by default, +# since it would conflict with the hobbitd task. +# If you need to run this, then disabled hobbitd and the hobbitd-modules +# above, then enable this. Make sure you enter the IP-address of your  +# Hobbit server in the command-line, so that the proxy knows where to forward +# status messages. +[bbproxy] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD $BBHOME/bin/bbproxy --hobbitd --bbdisplay=YOUR.HOBBIT.SERVER.IP --report=$MACHINE.bbproxy --no-daemon --pidfile=$BBSERVERLOGS/bbproxy.pid +	LOGFILE $BBSERVERLOGS/bbproxy.log + + +# "hobbitfetch" is used when you have clients that cannot connect to your Hobbit server, +# but the Hobbit server can connect to the client. Normally the clients will initiate +# a connection to the Hobbit server to deliver the data they collect, but this is +# forbidden in some firewall setups. By enabling the hobbitfetch task, hosts that have +# the "pulldata" tag in the bb-hosts file will be polled by hobbitfetch for their data. +# +# NOTE: On the clients you must enable the "msgcache" task, since this is what  +#       hobbitfetch is talking to. +[hobbitfetch] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD $BBHOME/bin/hobbitfetch --server=YOUR.HOBBIT.SERVER.IP --no-daemon --pidfile=$BBSERVERLOGS/hobbitfetch.pid +	LOGFILE $BBSERVERLOGS/hobbitfetch.log + + +# "bbdisplay" runs the bbgen tool to generate the Hobbit webpages from the status information that +# has been received. Big Brother updated the webpages once every 5 minutes. The default here is to +# run it every minute for faster updates, but you can change it if you have a highly loaded server +# and dont need updates that often. + +[bbdisplay] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	GROUP generators +	CMD bbgen $BBGENOPTS --report +	LOGFILE $BBSERVERLOGS/bb-display.log +	INTERVAL 1m + +# bbcombotest is an extension script for the Hobbit display server. It generates +# status messages that are combined from the status of one or more normal statuses. +# It is controlled via the bbcombotest.cfg file. +[bbcombotest] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD $BBHOME/bin/bbcombotest +	LOGFILE $BBSERVERLOGS/bbcombotest.log +	INTERVAL 5m + +# "bbnet" runs the bbtest-net tool to perform the network based tests - i.e. http, smtp, ssh, dns and +# all of the various network protocols we need to test. + +[bbnet] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD bbtest-net --report --ping --checkresponse +	LOGFILE $BBSERVERLOGS/bb-network.log +	INTERVAL 5m + + +# "bbretest" picks up the tests that the normal network test consider "failed", and re-does those +# tests more often. This enables Big Brother to pick up a recovered network service faster than +# if it were tested only by the "bbnet" task (which only runs every 5 minutes). So if you have +# servers with very high availability guarantees, running this task will make your availability +# reports look much better. + +[bbretest] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD $BBHOME/ext/bbretest-net.sh +	LOGFILE $BBSERVERLOGS/bb-retest.log +	INTERVAL 1m + + +# "hobbitclient" runs the Hobbit client. The client is installed automatically +# when you install a Hobbit server (presumably, you do want to monitor the  +# Hobbit server ?), but there's no need to have two hobbitlaunch instances +# running at the same time. So we'll just run it from here. +# Note: If you are using another client package, you should disable this one. + +[hobbitclient] +	ENVFILE /data/srv/hobbit/client/etc/hobbitclient.cfg +	NEEDS hobbitd +	CMD /data/srv/hobbit/client/bin/hobbitclient.sh +	LOGFILE $BBSERVERLOGS/hobbitclient.log +	INTERVAL 5m + +[storage] +	 +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD /data/srv/hobbit/server/ext/hobbitstorage.py +	LOGFILE $BBSERVERLOGS/bb-storage.log +	INTERVAL 5m +[notes] +       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +       CMD /data/srv/hobbit/server/ext/hbnotes.py +       LOGFILE $BBSERVERLOGS/bb-notes.log +       INTERVAL 5m +[orphan] +       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +       CMD /data/srv/hobbit/server/ext/hobbit-myth-orphan.sh +       LOGFILE $BBSERVERLOGS/orphan.log +       INTERVAL 5m +  +[func] +       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +       CMD sudo /data/srv/hobbit/server/ext/hbfunc.py +       LOGFILE $BBSERVERLOGS/hbfunc.log +       INTERVAL 5m + +[memmyth] +       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +       CMD  /data/srv/hobbit/server/ext/hobbit-mem-myth.sh +       LOGFILE $BBSERVERLOGS/mythmem.log +       INTERVAL 5m + +[mtc] +       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +       CMD  /data/srv/hobbit/server/ext/hobbit_myth_data.py +       LOGFILE $BBSERVERLOGS/mtc +       INTERVAL 5m diff --git a/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.diff b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.diff new file mode 100644 index 0000000..6239125 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.diff @@ -0,0 +1,40 @@ +--- hobbitlaunch.cfg.orig	2008-02-10 22:30:16.000000000 +0000 ++++ hobbitlaunch.cfg	2008-08-09 07:05:14.000000000 +0000 +@@ -204,3 +204,37 @@ + 	LOGFILE $BBSERVERLOGS/hobbitclient.log + 	INTERVAL 5m +  ++[storage] ++	 ++	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++	CMD /data/srv/hobbit/server/ext/hobbitstorage.py ++	LOGFILE $BBSERVERLOGS/bb-storage.log ++	INTERVAL 5m ++[notes] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD /data/srv/hobbit/server/ext/hbnotes.py ++       LOGFILE $BBSERVERLOGS/bb-notes.log ++       INTERVAL 5m ++[orphan] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD /data/srv/hobbit/server/ext/hobbit-myth-orphan.sh ++       LOGFILE $BBSERVERLOGS/orphan.log ++       INTERVAL 5m ++  ++[func] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD sudo /data/srv/hobbit/server/ext/hbfunc.py ++       LOGFILE $BBSERVERLOGS/hbfunc.log ++       INTERVAL 5m ++ ++[memmyth] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD  /data/srv/hobbit/server/ext/hobbit-mem-myth.sh ++       LOGFILE $BBSERVERLOGS/mythmem.log ++       INTERVAL 5m ++ ++[mtc] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD  /data/srv/hobbit/server/ext/hobbit_myth_data.py ++       LOGFILE $BBSERVERLOGS/mtc ++       INTERVAL 5m diff --git a/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.orig b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.orig new file mode 100644 index 0000000..93c2dd9 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitlaunch.cfg.orig @@ -0,0 +1,206 @@ +# +# The hobbitlaunch.cfg file is loaded by "hobbitlaunch". +# It controls which of the Hobbit modules to run, how often, and +# with which parameters, options and environment variables. +# + +# This is the main Hobbit daemon. This must be running on at least +# one server in your setup. If you are setting up a server to do +# just network tests or run bbproxy, it is OK to disable this (then +# you also need to remove the "NEEDS hobbitd" lines for the tasks +# you want to run). +[hobbitd] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD hobbitd --pidfile=$BBSERVERLOGS/hobbitd.pid --restart=$BBTMP/hobbitd.chk --checkpoint-file=$BBTMP/hobbitd.chk --checkpoint-interval=600 --log=$BBSERVERLOGS/hobbitd.log --admin-senders=127.0.0.1,$BBSERVERIP --store-clientlogs=!msgs + + +# "bbstatus" saves status-logs in text- and html-format, like the old Big Brother  +# daemon does. Unless you are using add-ons that directly access the log-files, you  +# will not need to run this module, and it is recommended that you keep it disabled +# since storing the raw logs on disk can cause a significant load on your server. + +[bbstatus] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=status --log=$BBSERVERLOGS/status.log hobbitd_filestore --status --html + + +# "bbhistory" keeps track of the status changes that happen, in a manner that is +# compatible with the Big Brother history logs. You probably do want to run this. + +[bbhistory] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=stachg --log=$BBSERVERLOGS/history.log hobbitd_history + + +# "hostdata" stores the Hobbit client messages on disk when some status for a host +# changes. This lets you access a lot of data collected from a host around the time +# when a problem occurred. However, it may use a significant amount of disk space +# if you have lots of Hobbit clients. +# Note: The --store-clientlogs option for the [hobbitd] provides control over +#       which status-changes will cause a client message to be stored. +[hostdata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=clichg --log=$BBSERVERLOGS/hostdata.log hobbitd_hostdata + + +# "bbdata" saves information sent using the BB "data" protocol, like the old Big Brother  +# daemon does. Unless you are using add-ons that directly access the data-files, you  +# will not need to run this module, and it is recommended that you keep it disabled +# since storing the raw data on disk can cause a significant load on your BB server. +# RRD graphs uses data-files, but since RRD is handled by the hobbitd_rrd module, you do +# not need to run the "bbdata" module to get RRD graphs. + +[bbdata] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=data   --log=$BBSERVERLOGS/data.log hobbitd_filestore --data + + +# "bbnotes" saves web note-files, that are sent using the BB "notes" protocol. This is +# disabled by default; if you use the BB "notes" protocol, then you should enable this. + +[bbnotes] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=notes  --log=$BBSERVERLOGS/notes.log hobbitd_filestore --notes + + +# "bbenadis" updates the files used to indicate that a host or test has been enabled or disabled. +# Unless you are running server side scripts that look at these files, you do not need this. + +[bbenadis] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=enadis --log=$BBSERVERLOGS/enadis.log hobbitd_filestore --enadis + + +# "bbpage" sends out alerts. Note that this module is NOT compatible with the old Big Brother +# system - it uses a different configuration file to determine how alerts get sent. If you want +# alerts to go out via pager, e-mail or some other means, then you must run this module. + +[bbpage] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=page  --log=$BBSERVERLOGS/page.log hobbitd_alert --checkpoint-file=$BBTMP/alert.chk --checkpoint-interval=600 + + +# "rrdstatus" updates RRD files with information that arrives as "status" messages. +# If you want RRD graphs of your monitoring data, then you want to run this. + +[rrdstatus] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=status --log=$BBSERVERLOGS/rrd-status.log hobbitd_rrd --rrddir=$BBVAR/rrd + +# "rrddata" updates RRD files with information that arrives as "data" messages. +# If you want RRD graphs of your monitoring BB data, then you want to run this. + +[rrddata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=data   --log=$BBSERVERLOGS/rrd-data.log hobbitd_rrd --rrddir=$BBVAR/rrd + +# The client back-end module. You need this if you are running the Hobbit client on any system. +[clientdata] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD hobbitd_channel --channel=client --log=$BBSERVERLOGS/clientdata.log hobbitd_client + + +# "bbproxy" is the Hobbit proxy server that allows you to forward status messages +# from a protected network to your Hobbit server. It is not enabled by default, +# since it would conflict with the hobbitd task. +# If you need to run this, then disabled hobbitd and the hobbitd-modules +# above, then enable this. Make sure you enter the IP-address of your  +# Hobbit server in the command-line, so that the proxy knows where to forward +# status messages. +[bbproxy] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD $BBHOME/bin/bbproxy --hobbitd --bbdisplay=YOUR.HOBBIT.SERVER.IP --report=$MACHINE.bbproxy --no-daemon --pidfile=$BBSERVERLOGS/bbproxy.pid +	LOGFILE $BBSERVERLOGS/bbproxy.log + + +# "hobbitfetch" is used when you have clients that cannot connect to your Hobbit server, +# but the Hobbit server can connect to the client. Normally the clients will initiate +# a connection to the Hobbit server to deliver the data they collect, but this is +# forbidden in some firewall setups. By enabling the hobbitfetch task, hosts that have +# the "pulldata" tag in the bb-hosts file will be polled by hobbitfetch for their data. +# +# NOTE: On the clients you must enable the "msgcache" task, since this is what  +#       hobbitfetch is talking to. +[hobbitfetch] +	DISABLED +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	CMD $BBHOME/bin/hobbitfetch --server=YOUR.HOBBIT.SERVER.IP --no-daemon --pidfile=$BBSERVERLOGS/hobbitfetch.pid +	LOGFILE $BBSERVERLOGS/hobbitfetch.log + + +# "bbdisplay" runs the bbgen tool to generate the Hobbit webpages from the status information that +# has been received. Big Brother updated the webpages once every 5 minutes. The default here is to +# run it every minute for faster updates, but you can change it if you have a highly loaded server +# and dont need updates that often. + +[bbdisplay] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	GROUP generators +	CMD bbgen $BBGENOPTS --report +	LOGFILE $BBSERVERLOGS/bb-display.log +	INTERVAL 1m + +# bbcombotest is an extension script for the Hobbit display server. It generates +# status messages that are combined from the status of one or more normal statuses. +# It is controlled via the bbcombotest.cfg file. +[bbcombotest] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD $BBHOME/bin/bbcombotest +	LOGFILE $BBSERVERLOGS/bbcombotest.log +	INTERVAL 5m + +# "bbnet" runs the bbtest-net tool to perform the network based tests - i.e. http, smtp, ssh, dns and +# all of the various network protocols we need to test. + +[bbnet] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD bbtest-net --report --ping --checkresponse +	LOGFILE $BBSERVERLOGS/bb-network.log +	INTERVAL 5m + + +# "bbretest" picks up the tests that the normal network test consider "failed", and re-does those +# tests more often. This enables Big Brother to pick up a recovered network service faster than +# if it were tested only by the "bbnet" task (which only runs every 5 minutes). So if you have +# servers with very high availability guarantees, running this task will make your availability +# reports look much better. + +[bbretest] +	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg +	NEEDS hobbitd +	CMD $BBHOME/ext/bbretest-net.sh +	LOGFILE $BBSERVERLOGS/bb-retest.log +	INTERVAL 1m + + +# "hobbitclient" runs the Hobbit client. The client is installed automatically +# when you install a Hobbit server (presumably, you do want to monitor the  +# Hobbit server ?), but there's no need to have two hobbitlaunch instances +# running at the same time. So we'll just run it from here. +# Note: If you are using another client package, you should disable this one. + +[hobbitclient] +	ENVFILE /data/srv/hobbit/client/etc/hobbitclient.cfg +	NEEDS hobbitd +	CMD /data/srv/hobbit/client/bin/hobbitclient.sh +	LOGFILE $BBSERVERLOGS/hobbitclient.log +	INTERVAL 5m + diff --git a/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg new file mode 100644 index 0000000..42fc4c7 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg @@ -0,0 +1,226 @@ +# NB : Even though it might look like a shell-script, it is NOT. +# +BBSERVERROOT="/data/srv/hobbit"		# Where Hobbit is installed - holds the server and bbvar sub-dirs. +BBSERVERLOGS="/var/log/hobbit"		# Directory for server logs. The hobbit user must have write-access here. +HOBBITCLIENTHOME="/data/srv/hobbit/client"    # BBHOME directory for the client + + +BBSERVERHOSTNAME="localhost"		# The hostname of your server +BBSERVERIP="127.0.0.1"			# The IP-address of your server. Use the real one, not 127.0.0.1 . +BBSERVEROS="linux"			# The operating system of your server. linux,freebsd,solaris,hpux,aix,osf + +BBSERVERWWWNAME="localhost"		# The name used for this hosts' webserver +BBSERVERWWWURL="/hobbit"		# The top URL for the Hobbit webpages +BBSERVERCGIURL="/hobbit/hobbit-cgi"		# The URL for the Hobbit CGI scripts. +BBSERVERSECURECGIURL="/hobbit/hobbit-seccgi"	# The URL for the secured Hobbit CGI scripts. + +# BBLOCATION="foo"			# The network location, makes bbtest-net test only hosts with NET:foo +					# You only need to set this if you have multiple network test servers with +					# a shared bb-hosts file. + +# Make sure the path includes the directories where you have fping, mail and (optionally) ntpdate installed, +# as well as the BBHOME/bin directory where all of the Hobbit programs reside. +PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/data/srv/hobbit/server/bin" + +# Some systems need extra settings e.g. to locate run-time libraries. +# You can add these extra settings here: + + + +##### Normally you do not need to modify anything below this point ##### + +# General settings +BBPORT="1984"			# Portnumber where hobbitd/bbd listens +BBDISP="$BBSERVERIP"		# IP of a single hobbit/bbd server +BBDISPLAYS=""			# IP of multiple hobbit/bbd servers. If used, BBDISP must be 0.0.0.0 +FQDN="TRUE"			# Use fully-qualified hostnames internally. Keep it TRUE unless you know better. +BBGHOSTS="1"                    # How to handle status messages from unknown hosts. +                                # 0=accept message, 1=discard message, 2=discard message and log the event +BBLOGSTATUS="DYNAMIC"		# Are HTML status logs statically or dynamically generated? +				# Use DYNAMIC with Hobbit, unless you run hobbitd_filestore --status --html + +PINGCOLUMN="conn"		# Column where the ping-test reports results. +INFOCOLUMN="info"		# Column where the info-pages are reported. +TRENDSCOLUMN="trends"		# Column where the RRD graphs are reported. + +BBMAXMSGSPERCOMBO="100"         # How many individual messages to combine in a combo-message. 0=unlimited. +BBSLEEPBETWEENMSGS="0"          # Delay between sending each combo message, in milliseconds. + + +# Specific to this host +BBOSTYPE="$BBSERVEROS"		# Hosttype (operating system). Not used by server-side, but clients use this. +MACHINEDOTS="$BBSERVERHOSTNAME"	# This systems hostname +MACHINEADDR="$BBSERVERIP"	# This systems IP-address + +# URL's generated/used by bbgen +BBWEBHOST="http://$BBSERVERWWWNAME"		# Just the host part of the URL - http://www.foo.com +BBWEBHOSTURL="$BBWEBHOST$BBSERVERWWWURL"	# Prefix for all static Hobbit pages - http://www.foo.com/bb +BBWEBHTMLLOGS="$BBWEBHOSTURL/html"		# Prefix for the Hobbit HTML logs (only if BBLOGSTATUS=STATIC) +BBWEB="$BBSERVERWWWURL"				# Hobbit URL prefix without the host part +BBSKIN="$BBSERVERWWWURL/gifs"			# Hobbit URL prefix for the GIF files +BBHELPSKIN="$BBSERVERWWWURL/help"               # Hobbit URL prefix for the online help files. +BBNOTESSKIN="$BBSERVERWWWURL/notes"             # Hobbit URL prefix for the online notes-files. +BBMENUSKIN="$BBSERVERWWWURL/menu"               # Hobbit URL prefix for the webpage menu files. +BBREPURL="$BBSERVERWWWURL/rep"			# Hobbit URL prefix for the Hobbit availability reports +BBSNAPURL="$BBSERVERWWWURL/snap"		# Hobbit URL prefix for the Hobbit snapshots +BBWAP="$BBSERVERWWWURL/wml"			# Hobbit URL prefix for the WAP/WML files. +CGIBINURL="$BBSERVERCGIURL"			# URL prefix for the Hobbit CGI-scripts - /cgi-bin +SECURECGIBINURL="$BBSERVERSECURECGIURL"		# URL prefix for the secured Hobbit CGI-scripts - /cgi-secure + +# Locations of system-wide files and directories +BBHOME="/data/srv/hobbit/server"				# The Hobbit server directory, where programs and configurations go.  +BBTMP="$BBHOME/tmp"				# Directory used for temporary files. +BBHOSTS="$BBHOME/etc/bb-hosts"			# The bb-hosts file +BB="$BBHOME/bin/bb"				# The 'bb' client program +BBGEN="$BBHOME/bin/bbgen"			# The bbgen program + +# Server specific directories +BBVAR="/data/srv/hobbit/var"					# The bbvar directory holds all monitoring data +BBACKS="$BBVAR/acks"				# Acknowledge event info stored here (hobbitd_alert) +BBDATA="$BBVAR/data"				# Data files go here (hobbitd_filestore --data) +BBDISABLED="$BBVAR/disabled"			# Enabled/disabled flags are stored here (hobbitd_filestore --enadis) +BBHIST="$BBVAR/hist"				# History logs are stored here (hobbitd_history) +BBHISTLOGS="$BBVAR/histlogs"			# Historical detail status-loge are stored here (hobbitd_history) +BBLOGS="$BBVAR/logs"				# Status logs go here (hobbitd_filestore --status). Not needed by Hobbit. +BBWWW="$BBHOME/www"				# The directory for Hobbit webpage files. +BBHTML="$BBWWW/html"				# HTML status logs go here (hobbitd_filestore --status --html) +BBNOTES="$BBWWW/notes"				# For notes-files (hobbitd_filestore --notes) +BBREP="$BBWWW/rep"				# Top-level directory for Hobbit reports. +BBSNAP="$BBWWW/snap"				# Top-level directory for Hobbit snapshots. + +# For the hobbitd_history module +BBALLHISTLOG="TRUE"				# Save a common log of all events (used for the bb2 webpage) +BBHOSTHISTLOG="TRUE"				# Save a log of all events for a host (not used by any tool currently) +SAVESTATUSLOG="TRUE"				# Save the detailed status log each time the status changes. + +# For the hobbitd_alert module +MAILC="mail"				# Command used to send an e-mail with no subject +MAIL="$MAILC -s"				# Command used to send an e-mail with a subject +SVCCODES="disk:100,cpu:200,procs:300,svcs:350,msgs:400,conn:500,http:600,dns:800,smtp:725,telnet:723,ftp:721,pop:810,pop3:810,pop-3:810,ssh:722,imap:843,ssh1:722,ssh2:722,imap2:843,imap3:843,imap4:843,pop2:809,pop-2:809,nntp:819,test:901" +ALERTCOLORS="red,yellow,purple"			# Colors that may trigger an alert message +OKCOLORS="green,blue,clear"			# Colors that may trigger a recovery message +ALERTREPEAT="30"				# The default interval between repeated alert-messages (in minutes) + +# For bbtest-net +CONNTEST="TRUE"					# Should we 'ping' hosts ? +IPTEST_2_CLEAR_ON_FAILED_CONN="TRUE"		# If TRUE, then failing network tests go CLEAR if conn-test fails. +NONETPAGE=""					# Network tests that go YELLOW upon failure +FPING="hobbitping"					# Path and options for the ping program. +NTPDATE="ntpdate"				# Path to the 'ntpdate' program +TRACEROUTE="traceroute"                         # How to do traceroute on failing ping tests. Requires "trace" in bb-hosts. +BBROUTERTEXT="router"				# What to call a failing intermediate network device. +NETFAILTEXT="not OK"				# Text indicating a network test failed + + +# Settings for the RRD graphs + +# Top level directory for the RRD files +BBRRDS="$BBVAR/rrd" + +# Size of the generated graph images +RRDHEIGHT="120" +RRDWIDTH="576"		# The RRD's contain 576 data points, so this is a good value +NCV_storage="*:GAUGE" +NCV_memmbe="*:GAUGE" +NCV_memmfe="*:GAUGE" +# TEST2RRD defines the status- and data-messages you want to collect RRD data +# about. You will normally not need to modify this, unless you have added a +# script to pick up RRD data from custom tests (the hobbitd_larrd --extra-script +# and --extra-tests options). +# Note that network tests defined in the bb-services file are automatically +# included. +# The format here is "COLUMN=RRDSERVICE". If you leave out the "=RRDSERVICE" +# part, it is assumed to be the same as the COLUMN value. +# +# This is also used by the bb-hostsvc.cgi script to determine if the detailed +# status view of a test should include a graph. +TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,storage=ncv,memmbe=ncv,memmfe=ncv" + +# This defines which RRD files to include on the "trends" column webpage, +# and the order in which they appear. +GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,storage,memmbe,memmfe" + +# These two settings can be used to restrict what filesystems are being +# tracked (i.e. have their utilisation graphed) by Hobbit. +# NORRDDISKS=""		# Filesystems that will NOT be tracked +# RRDDISKS=""		# Only track these filesystems + + +############################################################ +# These determine some parts of how bbgen generates webpages +############################################################ +BBGENOPTS="--recentgifs --subpagecolumns=2"     # Standard options for bbgen. +SUMMARY_SET_BKG="FALSE"				# Do summaries affect the background color of the BB webpage ? +BBMKBB2EXT="eventlog.sh acklog.sh"		# What extensions to have on the BB2 page. +DOTHEIGHT="16"					# Height (in pixels) of the color GIF's +DOTWIDTH="16"					# Width (in pixels) of the color GIF's +COLUMNDOCURL="$CGIBINURL/hobbitcolumn.sh?%s"	# URL formatting string for column-links + +# HTML content +HTMLCONTENTTYPE="text/html"                     # You can add charset options here. + +# Fonts and texts +HOBBITLOGO=""                             # HTML inserted on all header pages at top-left corner. +MKBBLOCAL="<B><I>Pages Hosted Locally</I></B>" +MKBBREMOTE="<B><I>Remote Status Display</I></B>" +MKBBSUBLOCAL="<B><I>Subpages Hosted Locally</I></B>" +MKBBACKFONT="COLOR=\"#33ebf4\" SIZE=\"-1\""	# Size and color of the 'Current acknowledgement...' text in the html log. +MKBBCOLFONT="COLOR=\"#87a9e5\" SIZE=\"-1\""	# Size and color of the column headings text +MKBBROWFONT="SIZE=\"+1\" COLOR=\"#FFFFCC\" FACE=\"Tahoma, Arial, Helvetica\""   # Size,color,font of text in each row (hostname) +MKBBTITLE="COLOR=\"#FFFFF0\" SIZE=\"+1\""	# Size and color of the BB titles (the old "ivory" is invalid HTML) +BBDATEFORMAT="%a %b %d %H:%M:%S %Y"		# Date format +BBRSSTITLE="Hobbit Alerts"			# Title for the RSS and WML outputs. +ACKUNTILMSG="Next update at: %H:%M %Y-%m-%d"    # strftime format for the acknowledgement status display. + +# For WML output +WMLMAXCHARS="1500"				# Max number of bytes in a WAP message + +# For BB reports +BBREPWARN="97"					# Default availability causing yellow status on availability report. +BBREPGREEN="99.995"				# Default availability causing green status on availability report. +BBGENREPOPTS="$BBGENOPTS"			# bbgen(1) options used when generating availability reports. +BBREPEXT=""					# What extensions to run on report pages. + +# For BB snapshots +BBGENSNAPOPTS="$BBGENOPTS"			# bbgen(1) options used when generating snapshots. + +# For the bb-hist CGI  +BBHISTEXT=""					# What extensions to run on history pages. + + +# The following defines a bunch of commands that BB extensions expect to be present. +# Hobbit does not use them, but they are provided here so if you use BB extension +# scripts, then they will hopefully run without having to do a lot of tweaking. + +UPTIME="" +AWK="/bin/awk" +CAT="/bin/cat" +CP="/bin/cp" +CUT="/bin/cut" +DATE="/bin/date" +EGREP="/bin/egrep" +EXPR="/usr/bin/expr" +FIND="/usr/bin/find" +GREP="/bin/grep" +HEAD="/usr/bin/head" +ID="/usr/bin/id" +LN="/bin/ln" +LS="/bin/ls" +MV="/bin/mv" +RM="/bin/rm" +SED="/bin/sed" +SORT="/usr/bin/sort" +TAIL="/usr/bin/tail" +TOUCH="/bin/touch" +TR="/bin/tr" +UNIQ="/usr/bin/uniq" +WHO="/usr/bin/who" +TOP="" +WC="/usr/bin/wc -l" +WCC="/usr/bin/wc" +# DF,DFCMD and PS are for compatibility only, NOT USED by the Hobbit client +DF="/bin/df -Pk" +DFCMD="/bin/df -Pk" +PS="ps ax" + +MAXLINE="32768" diff --git a/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.diff b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.diff new file mode 100644 index 0000000..7c829fe --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.diff @@ -0,0 +1,45 @@ +--- hobbitserver.cfg.orig	2008-01-08 15:25:34.000000000 +0000 ++++ hobbitserver.cfg	2008-01-08 16:22:56.000000000 +0000 +@@ -105,7 +105,7 @@ + CONNTEST="TRUE"					# Should we 'ping' hosts ? + IPTEST_2_CLEAR_ON_FAILED_CONN="TRUE"		# If TRUE, then failing network tests go CLEAR if conn-test fails. + NONETPAGE=""					# Network tests that go YELLOW upon failure +-FPING="/usr/sbin/fping"					# Path and options for the ping program. ++FPING="hobbitping"					# Path and options for the ping program. + NTPDATE="ntpdate"				# Path to the 'ntpdate' program + TRACEROUTE="traceroute"                         # How to do traceroute on failing ping tests. Requires "trace" in bb-hosts. + BBROUTERTEXT="router"				# What to call a failing intermediate network device. +@@ -120,7 +120,9 @@ + # Size of the generated graph images + RRDHEIGHT="120" + RRDWIDTH="576"		# The RRD's contain 576 data points, so this is a good value +- ++NCV_storage="*:GAUGE" ++NCV_memmbe="*:GAUGE" ++NCV_memmfe="*:GAUGE" + # TEST2RRD defines the status- and data-messages you want to collect RRD data + # about. You will normally not need to modify this, unless you have added a + # script to pick up RRD data from custom tests (the hobbitd_larrd --extra-script +@@ -132,11 +134,11 @@ + # + # This is also used by the bb-hostsvc.cgi script to determine if the detailed + # status view of a test should include a graph. +-TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines" ++TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,storage=ncv,memmbe=ncv,memmfe=ncv" +  + # This defines which RRD files to include on the "trends" column webpage, + # and the order in which they appear. +-GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines" ++GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,storage,memmbe,memmfe" +  + # These two settings can be used to restrict what filesystems are being + # tracked (i.e. have their utilisation graphed) by Hobbit. +@@ -158,7 +160,7 @@ + HTMLCONTENTTYPE="text/html"                     # You can add charset options here. +  + # Fonts and texts +-HOBBITLOGO="Hobbit"                             # HTML inserted on all header pages at top-left corner. ++HOBBITLOGO=""                             # HTML inserted on all header pages at top-left corner. + MKBBLOCAL="<B><I>Pages Hosted Locally</I></B>" + MKBBREMOTE="<B><I>Remote Status Display</I></B>" + MKBBSUBLOCAL="<B><I>Subpages Hosted Locally</I></B>" diff --git a/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.orig b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.orig new file mode 100644 index 0000000..2ba56f5 --- /dev/null +++ b/abs/mv-core/hobbitmon/diffs/hobbitserver.cfg.orig @@ -0,0 +1,224 @@ +# NB : Even though it might look like a shell-script, it is NOT. +# +BBSERVERROOT="/data/srv/hobbit"		# Where Hobbit is installed - holds the server and bbvar sub-dirs. +BBSERVERLOGS="/var/log/hobbit"		# Directory for server logs. The hobbit user must have write-access here. +HOBBITCLIENTHOME="/data/srv/hobbit/client"    # BBHOME directory for the client + + +BBSERVERHOSTNAME="localhost"		# The hostname of your server +BBSERVERIP="127.0.0.1"			# The IP-address of your server. Use the real one, not 127.0.0.1 . +BBSERVEROS="linux"			# The operating system of your server. linux,freebsd,solaris,hpux,aix,osf + +BBSERVERWWWNAME="localhost"		# The name used for this hosts' webserver +BBSERVERWWWURL="/hobbit"		# The top URL for the Hobbit webpages +BBSERVERCGIURL="/hobbit/hobbit-cgi"		# The URL for the Hobbit CGI scripts. +BBSERVERSECURECGIURL="/hobbit/hobbit-seccgi"	# The URL for the secured Hobbit CGI scripts. + +# BBLOCATION="foo"			# The network location, makes bbtest-net test only hosts with NET:foo +					# You only need to set this if you have multiple network test servers with +					# a shared bb-hosts file. + +# Make sure the path includes the directories where you have fping, mail and (optionally) ntpdate installed, +# as well as the BBHOME/bin directory where all of the Hobbit programs reside. +PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/data/srv/hobbit/server/bin" + +# Some systems need extra settings e.g. to locate run-time libraries. +# You can add these extra settings here: + + + +##### Normally you do not need to modify anything below this point ##### + +# General settings +BBPORT="1984"			# Portnumber where hobbitd/bbd listens +BBDISP="$BBSERVERIP"		# IP of a single hobbit/bbd server +BBDISPLAYS=""			# IP of multiple hobbit/bbd servers. If used, BBDISP must be 0.0.0.0 +FQDN="TRUE"			# Use fully-qualified hostnames internally. Keep it TRUE unless you know better. +BBGHOSTS="1"                    # How to handle status messages from unknown hosts. +                                # 0=accept message, 1=discard message, 2=discard message and log the event +BBLOGSTATUS="DYNAMIC"		# Are HTML status logs statically or dynamically generated? +				# Use DYNAMIC with Hobbit, unless you run hobbitd_filestore --status --html + +PINGCOLUMN="conn"		# Column where the ping-test reports results. +INFOCOLUMN="info"		# Column where the info-pages are reported. +TRENDSCOLUMN="trends"		# Column where the RRD graphs are reported. + +BBMAXMSGSPERCOMBO="100"         # How many individual messages to combine in a combo-message. 0=unlimited. +BBSLEEPBETWEENMSGS="0"          # Delay between sending each combo message, in milliseconds. + + +# Specific to this host +BBOSTYPE="$BBSERVEROS"		# Hosttype (operating system). Not used by server-side, but clients use this. +MACHINEDOTS="$BBSERVERHOSTNAME"	# This systems hostname +MACHINEADDR="$BBSERVERIP"	# This systems IP-address + +# URL's generated/used by bbgen +BBWEBHOST="http://$BBSERVERWWWNAME"		# Just the host part of the URL - http://www.foo.com +BBWEBHOSTURL="$BBWEBHOST$BBSERVERWWWURL"	# Prefix for all static Hobbit pages - http://www.foo.com/bb +BBWEBHTMLLOGS="$BBWEBHOSTURL/html"		# Prefix for the Hobbit HTML logs (only if BBLOGSTATUS=STATIC) +BBWEB="$BBSERVERWWWURL"				# Hobbit URL prefix without the host part +BBSKIN="$BBSERVERWWWURL/gifs"			# Hobbit URL prefix for the GIF files +BBHELPSKIN="$BBSERVERWWWURL/help"               # Hobbit URL prefix for the online help files. +BBNOTESSKIN="$BBSERVERWWWURL/notes"             # Hobbit URL prefix for the online notes-files. +BBMENUSKIN="$BBSERVERWWWURL/menu"               # Hobbit URL prefix for the webpage menu files. +BBREPURL="$BBSERVERWWWURL/rep"			# Hobbit URL prefix for the Hobbit availability reports +BBSNAPURL="$BBSERVERWWWURL/snap"		# Hobbit URL prefix for the Hobbit snapshots +BBWAP="$BBSERVERWWWURL/wml"			# Hobbit URL prefix for the WAP/WML files. +CGIBINURL="$BBSERVERCGIURL"			# URL prefix for the Hobbit CGI-scripts - /cgi-bin +SECURECGIBINURL="$BBSERVERSECURECGIURL"		# URL prefix for the secured Hobbit CGI-scripts - /cgi-secure + +# Locations of system-wide files and directories +BBHOME="/data/srv/hobbit/server"				# The Hobbit server directory, where programs and configurations go.  +BBTMP="$BBHOME/tmp"				# Directory used for temporary files. +BBHOSTS="$BBHOME/etc/bb-hosts"			# The bb-hosts file +BB="$BBHOME/bin/bb"				# The 'bb' client program +BBGEN="$BBHOME/bin/bbgen"			# The bbgen program + +# Server specific directories +BBVAR="/data/srv/hobbit/var"					# The bbvar directory holds all monitoring data +BBACKS="$BBVAR/acks"				# Acknowledge event info stored here (hobbitd_alert) +BBDATA="$BBVAR/data"				# Data files go here (hobbitd_filestore --data) +BBDISABLED="$BBVAR/disabled"			# Enabled/disabled flags are stored here (hobbitd_filestore --enadis) +BBHIST="$BBVAR/hist"				# History logs are stored here (hobbitd_history) +BBHISTLOGS="$BBVAR/histlogs"			# Historical detail status-loge are stored here (hobbitd_history) +BBLOGS="$BBVAR/logs"				# Status logs go here (hobbitd_filestore --status). Not needed by Hobbit. +BBWWW="$BBHOME/www"				# The directory for Hobbit webpage files. +BBHTML="$BBWWW/html"				# HTML status logs go here (hobbitd_filestore --status --html) +BBNOTES="$BBWWW/notes"				# For notes-files (hobbitd_filestore --notes) +BBREP="$BBWWW/rep"				# Top-level directory for Hobbit reports. +BBSNAP="$BBWWW/snap"				# Top-level directory for Hobbit snapshots. + +# For the hobbitd_history module +BBALLHISTLOG="TRUE"				# Save a common log of all events (used for the bb2 webpage) +BBHOSTHISTLOG="TRUE"				# Save a log of all events for a host (not used by any tool currently) +SAVESTATUSLOG="TRUE"				# Save the detailed status log each time the status changes. + +# For the hobbitd_alert module +MAILC="mail"				# Command used to send an e-mail with no subject +MAIL="$MAILC -s"				# Command used to send an e-mail with a subject +SVCCODES="disk:100,cpu:200,procs:300,svcs:350,msgs:400,conn:500,http:600,dns:800,smtp:725,telnet:723,ftp:721,pop:810,pop3:810,pop-3:810,ssh:722,imap:843,ssh1:722,ssh2:722,imap2:843,imap3:843,imap4:843,pop2:809,pop-2:809,nntp:819,test:901" +ALERTCOLORS="red,yellow,purple"			# Colors that may trigger an alert message +OKCOLORS="green,blue,clear"			# Colors that may trigger a recovery message +ALERTREPEAT="30"				# The default interval between repeated alert-messages (in minutes) + +# For bbtest-net +CONNTEST="TRUE"					# Should we 'ping' hosts ? +IPTEST_2_CLEAR_ON_FAILED_CONN="TRUE"		# If TRUE, then failing network tests go CLEAR if conn-test fails. +NONETPAGE=""					# Network tests that go YELLOW upon failure +FPING="/usr/sbin/fping"					# Path and options for the ping program. +NTPDATE="ntpdate"				# Path to the 'ntpdate' program +TRACEROUTE="traceroute"                         # How to do traceroute on failing ping tests. Requires "trace" in bb-hosts. +BBROUTERTEXT="router"				# What to call a failing intermediate network device. +NETFAILTEXT="not OK"				# Text indicating a network test failed + + +# Settings for the RRD graphs + +# Top level directory for the RRD files +BBRRDS="$BBVAR/rrd" + +# Size of the generated graph images +RRDHEIGHT="120" +RRDWIDTH="576"		# The RRD's contain 576 data points, so this is a good value + +# TEST2RRD defines the status- and data-messages you want to collect RRD data +# about. You will normally not need to modify this, unless you have added a +# script to pick up RRD data from custom tests (the hobbitd_larrd --extra-script +# and --extra-tests options). +# Note that network tests defined in the bb-services file are automatically +# included. +# The format here is "COLUMN=RRDSERVICE". If you leave out the "=RRDSERVICE" +# part, it is assumed to be the same as the COLUMN value. +# +# This is also used by the bb-hostsvc.cgi script to determine if the detailed +# status view of a test should include a graph. +TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines" + +# This defines which RRD files to include on the "trends" column webpage, +# and the order in which they appear. +GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines" + +# These two settings can be used to restrict what filesystems are being +# tracked (i.e. have their utilisation graphed) by Hobbit. +# NORRDDISKS=""		# Filesystems that will NOT be tracked +# RRDDISKS=""		# Only track these filesystems + + +############################################################ +# These determine some parts of how bbgen generates webpages +############################################################ +BBGENOPTS="--recentgifs --subpagecolumns=2"     # Standard options for bbgen. +SUMMARY_SET_BKG="FALSE"				# Do summaries affect the background color of the BB webpage ? +BBMKBB2EXT="eventlog.sh acklog.sh"		# What extensions to have on the BB2 page. +DOTHEIGHT="16"					# Height (in pixels) of the color GIF's +DOTWIDTH="16"					# Width (in pixels) of the color GIF's +COLUMNDOCURL="$CGIBINURL/hobbitcolumn.sh?%s"	# URL formatting string for column-links + +# HTML content +HTMLCONTENTTYPE="text/html"                     # You can add charset options here. + +# Fonts and texts +HOBBITLOGO="Hobbit"                             # HTML inserted on all header pages at top-left corner. +MKBBLOCAL="<B><I>Pages Hosted Locally</I></B>" +MKBBREMOTE="<B><I>Remote Status Display</I></B>" +MKBBSUBLOCAL="<B><I>Subpages Hosted Locally</I></B>" +MKBBACKFONT="COLOR=\"#33ebf4\" SIZE=\"-1\""	# Size and color of the 'Current acknowledgement...' text in the html log. +MKBBCOLFONT="COLOR=\"#87a9e5\" SIZE=\"-1\""	# Size and color of the column headings text +MKBBROWFONT="SIZE=\"+1\" COLOR=\"#FFFFCC\" FACE=\"Tahoma, Arial, Helvetica\""   # Size,color,font of text in each row (hostname) +MKBBTITLE="COLOR=\"#FFFFF0\" SIZE=\"+1\""	# Size and color of the BB titles (the old "ivory" is invalid HTML) +BBDATEFORMAT="%a %b %d %H:%M:%S %Y"		# Date format +BBRSSTITLE="Hobbit Alerts"			# Title for the RSS and WML outputs. +ACKUNTILMSG="Next update at: %H:%M %Y-%m-%d"    # strftime format for the acknowledgement status display. + +# For WML output +WMLMAXCHARS="1500"				# Max number of bytes in a WAP message + +# For BB reports +BBREPWARN="97"					# Default availability causing yellow status on availability report. +BBREPGREEN="99.995"				# Default availability causing green status on availability report. +BBGENREPOPTS="$BBGENOPTS"			# bbgen(1) options used when generating availability reports. +BBREPEXT=""					# What extensions to run on report pages. + +# For BB snapshots +BBGENSNAPOPTS="$BBGENOPTS"			# bbgen(1) options used when generating snapshots. + +# For the bb-hist CGI  +BBHISTEXT=""					# What extensions to run on history pages. + + +# The following defines a bunch of commands that BB extensions expect to be present. +# Hobbit does not use them, but they are provided here so if you use BB extension +# scripts, then they will hopefully run without having to do a lot of tweaking. + +UPTIME="" +AWK="/bin/awk" +CAT="/bin/cat" +CP="/bin/cp" +CUT="/bin/cut" +DATE="/bin/date" +EGREP="/bin/egrep" +EXPR="/usr/bin/expr" +FIND="/usr/bin/find" +GREP="/bin/grep" +HEAD="/usr/bin/head" +ID="/usr/bin/id" +LN="/bin/ln" +LS="/bin/ls" +MV="/bin/mv" +RM="/bin/rm" +SED="/bin/sed" +SORT="/usr/bin/sort" +TAIL="/usr/bin/tail" +TOUCH="/bin/touch" +TR="/bin/tr" +UNIQ="/usr/bin/uniq" +WHO="/usr/bin/who" +TOP="" +WC="/usr/bin/wc -l" +WCC="/usr/bin/wc" +# DF,DFCMD and PS are for compatibility only, NOT USED by the Hobbit client +DF="/bin/df -Pk" +DFCMD="/bin/df -Pk" +PS="ps ax" + +MAXLINE="32768" diff --git a/abs/mv-core/hobbitmon/hbfunc.py b/abs/mv-core/hobbitmon/hbfunc.py new file mode 100755 index 0000000..9cb66df --- /dev/null +++ b/abs/mv-core/hobbitmon/hbfunc.py @@ -0,0 +1,167 @@ +#!/usr/bin/python +#checks that the MBE can connect to the minions + +# =============================================== +import sys +import os +import string +import time +import func.overlord.client as fc +BBLINE = '' +BBCOLOR="green" +DATE = time.strftime("%a %b %d %H:%M:%S %Z %Y", time.localtime(time.time())) +if os.environ['BB']: +    #print os.environ['BB'] +    BB=os.environ['BB'] +if os.environ['BBDISP']: +    #print os.environ['BBDISP'] +    BBDISP=os.environ['BBDISP'] +if os.environ['MACHINE']: +     #print os.environ['MACHINE'] +     MACHINE=os.environ['MACHINE'] + + + +def readbb(): +        global hostlist +        global mythtype + +        try: +                infile = open('/data/srv/hobbit/etc/bb-hosts', 'r') +        except(IOError), e: +          print "couldn't open bb-hosts file" +          sys.exit(1) +        else: +                bbhostlist = infile.readlines() +                infile.close() +		for line in bbhostlist: +			cline=line.strip() +			if not cline.startswith("#") and cline != '' and cline.find("bbd") == -1 and cline.find("func") != -1  : +				host=cline.split("#") +				host=host[0].split() +				hostlist.append(host[1].strip()) +		infile.close() +        try: +                infile = open('/usr/local/share/mythtv/.releasetype') +                mythtype= infile.readline() +                infile.close() +        except(IOError), e: +            print "couldn't open mythfile " +            mythtype='unkown' + +def find_local_myth_version(): +    global mythtype +    local_pkg_name="not_found" +    pkgname="mythtv" +    pkgname+=mythtype +    cmd="/usr/bin/pacman -Q %s " %pkgname +    result = os.popen2(cmd)[1].readlines() +    for list in result: +        l=list.strip() +        if l.startswith('mythtv') : +            local_pkg_name=l.strip() +            break +    return local_pkg_name + + +def  mythversion_check(currentclient,local_myth_version): +    global mythtype +    pkgname="mythtv" +    pkgname+=mythtype +    remote_pkg_name="remote_pkg_not_found" +    client = (fc.Client( currentclient )) +    results=client.pacman.pkgversion(pkgname) +    #print currentclient +    #print local_myth_version +    #print results[currentclient][1] +    try: +        for pkg in results[currentclient][1] : +            p=pkg.strip() +            if p.startswith('mythtv'): +                remote_pkg_name=p +                break +        if (remote_pkg_name != local_myth_version): +            BBLINE="Myth version MBE: %s does not match %s  %s \n " %(local_myth_version,currentclient,remote_pkg_name) +            LINE = "status " + currentclient  + ".myth_version yellow" + " " + DATE + " " + BBLINE + +        if (remote_pkg_name == local_myth_version): +            BBLINE="%s:  success (green) Myth version match %s \n " %(currentclient,remote_pkg_name) +            LINE = "status " + currentclient  + ".myth_version green" + " " + DATE + " " + BBLINE +    except: +        BBLINE="Something went wrong! \n " +        LINE = "status " + currentclient  + ".myth_version red" + " " + DATE + " " + BBLINE + + +    cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +    os.system(cmd) +    return + +#------------------------- +global hostlist +global mythtype +mythtype="" +hostlist = [] +readbb() +local_myth_version=find_local_myth_version() + +for currentclient in hostlist: +    client = (fc.Client( currentclient )) +    cmd='/data/srv/hobbit/server/bin/bb 127.0.0.1  "query ' +    cmd+=currentclient +    cmd+='.conn"' +    bbresults=os.popen(cmd,'r'	).readline().strip().split() +    bbstate=bbresults[0] +    if bbstate == 'green': +        results=client.test.add("1","2") +        try: +            #print currentclient +            #print results[currentclient] +            #print type(results[currentclient]) +            #print "----------" +            if  type(results[currentclient]) == str: +                if results[currentclient] == '12': +                    BBLINE="%s:  success (green) \n " %currentclient +                    LINE = "status " + currentclient  + ".func green" + " " + DATE + " " + BBLINE +                    cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +                    os.system(cmd) +                    #REMOVE HOST FROM FAILED_FUNC +                    cmd='sed -i "/' +  currentclient + '/d" /data/srv/httpd/htdocs/failed_func_hosts' +                    os.system(cmd) +                    mythversion_check(currentclient,local_myth_version) +                else: +                    BBLINE="%s:  connected but wtf  (yellow)  \n " %currentclient +                    LINE = "status " + currentclient  + ".func yellow" + " " + DATE + " " + BBLINE +                    cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +                    os.system(cmd) +                    if BBCOLOR != "red": +                        BBCOLOR="yellow" +            else: +                BBLINE="%s: %s  (red)  \n "  %(currentclient,results[currentclient]) +                LINE = "status " + currentclient  + ".func red" + " " + DATE + " " + BBLINE +                cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +                cmd2= "echo " + currentclient + " >> /data/srv/httpd/htdocs/failed_func_hosts" +                cmd3="sudo /usr/bin/certmaster-ca -c " + currentclient +                os.system(cmd2) +                os.system(cmd3) +                os.system(cmd) +                BBCOLOR="red" +        except: +            BBLINE="%s had an error : %s (red) \n "   % (currentclient,str(results)) +            LINE = "status " + currentclient  + ".func red" + " " + DATE + " " + BBLINE +            cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +            cmd2= "echo " + currentclient + " >> /data/srv/httpd/htdocs/failed_func_hosts" +            os.system(cmd) +            os.system(cmd2) +            cmd3="sudo /usr/bin/certmaster-ca -c " + currentclient +            os.system(cmd3) +            BBCOLOR="red" +    else: +        BBLINE+= "not testing %s \n "  % currentclient + + +#LINE = "status " + MACHINE + ".func green" + " " + DATE + " " + BBLINE +#cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +#os.system(cmd) + +#print BBLINE +#print BBCOLOR diff --git a/abs/mv-core/hobbitmon/hbnotes.py b/abs/mv-core/hobbitmon/hbnotes.py new file mode 100755 index 0000000..b7ef16b --- /dev/null +++ b/abs/mv-core/hobbitmon/hbnotes.py @@ -0,0 +1,357 @@ +#!/usr/bin/python +# import MySQL module + +import MySQLdb +import sys +import getopt +import socket +import os +global ignorehostlist +try: +    import  ignoreclient +    ignorehostlist=ignoreclient.ignorehosts +except: +    print "could not find the ignore list" +    ignorehostlist="'ignoreme'" + + + + + +def createdropdown(): +    dropdown=''' +     <input name="param2" type="radio"  value="Restore" />Restore database </> +     <select name="param1"> +    ''' +    dir = "/data/database_backup" +    files = os.listdir(dir) +    for file in os.listdir(dir): +        if (file.endswith(".tgz")): +            dropdown+='<option value="' + file + '">' + file + '</option> ' +    dropdown+='</select> <br><input name="param2" type="radio" value="Backup" checked="checked" />Backup database<br />  ' +    dropdown+='<input name="param2" type="radio" value="Optimize"  />Optimize database<br />  ' +    dropdown+='<input name="param2" type="radio" value="ShutdownAll"  />Shutdown All Systems (expect MBE)<br />  ' +    dropdown+='''<input name="param2" type="radio"  value="UpdateAll" />Update All Systems </>           <select name="param5"> +                   <option value="Myth_only">Myth only</option> +                   <option value="All"> Full System</option> +           </select> +	   </br> +	   </br> +           </br>''' +    return dropdown + +def main(argv): +    db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg") + +    # create a cursor +    cursor = db.cursor() +#------------------------------write client-config------------------------------------------------ +    SQL="SELECT DISTINCT(hostname) from settings where hostname not in(%s)" +    cursor.execute(SQL %ignorehostlist) +    result = cursor.fetchall() +    frontonly="_FRONTEND_" +    masterbackend="_MASTERBACKEND_" +    masterbacked_w_fe="_MASTERFE_" +    slave_w_fe="_SLAVEFE_" +    slave="_SLAVEBACKEND_" +    stand_alone="_STANDALONE_" +    dotMBE="" +    dotfrontend=list() +    dotslave=list() +    dotslavefe=list() +    tunerdict = {} +    for row in result: +  #     print row[0] +   #Find the system type +       cursor.execute("select value,data  from settings where hostname=%s and value in ('HostSystemType','HostRunFrontend');",(row)) +       hostvalues=cursor.fetchall() +       if  len(hostvalues) == 2: +          if hostvalues[1][1] == 'Frontend_only': +             frontonly+=","+row[0] +             dotfrontend.append(row[0]) + +          elif hostvalues[1][1] == 'Standalone': +             stand_alone+=","+row[0] +             dotMBE="MBE" + " [ label=\"" + row[0]  + "  \\n Standalone  \" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\"  fontcolor=\"white\"  color=blue4 style=filled   ] " +             dotfrontend.append(row[0]) +             cursor.execute("select cardtype,defaultinput  from capturecard  where hostname=%s;",(row)) +             tuners=cursor.fetchall() +             tstring="" + +             if len(tuners) == 0: +                 tunerdict["MBE"]="no tuners \\n" +             else: +                for t in tuners: +                    tstring+=t[0] +                    tstring+=t[1] +                    tstring+='\\n' +                    tunerdict["MBE"]=tstring + +          elif hostvalues[1][1] == 'Master_backend': +              if hostvalues[0][1]=='0': +                  masterbackend+=","+row[0] +                  dotMBE=row[0] + "\\n Master Backend" +              else: +                  masterbacked_w_fe+=","+row[0] +                  dotMBE="MBE" + " [ label=\"" + row[0]  + "  \\n Master Backend with frontend  \" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\"  fontcolor=\"white\"  color=blue4 style=filled   ] " +                  cursor.execute("select cardtype,defaultinput  from capturecard  where hostname=%s;",(row)) +                  tuners=cursor.fetchall() +                  tstring="" + +                  if len(tuners) == 0: +                    tunerdict["MBE"]="no tuners \\n" +                  else: +                    for t in tuners: +                            tstring+=t[0] +                            tstring+=t[1] +                            tstring+='\\n' +                            tunerdict["MBE"]=tstring +                  dotfrontend.append(row[0]) + +          elif hostvalues[1][1] == 'Slave_backend': +              if hostvalues[0][1]=='0': +                  slave+=","+row[0] +                  dotslave.append(row[0]) +                  cursor.execute("select cardtype,defaultinput  from capturecard  where hostname=%s;",(row)) +                  tuners=cursor.fetchall() +                  tstring="" +                  for t in tuners: +                        tstring+=t[0] +                        tstring+=t[1] +                        tstring+='\\n' +                  tunerdict["STUNER"+row[0]]=tstring +                  #dotfrontend.append(row[0]) +              else: +                  cursor.execute("select cardtype,defaultinput  from capturecard  where hostname=%s;",(row)) +                  tuners=cursor.fetchall() +                  tstring="" +                  for t in tuners: +                        tstring+=t[0] +                        tstring+=t[1] +                        tstring+='\\n' +                  tunerdict["STUNER"+row[0]]=tstring +                  print tstring + +                  slave_w_fe+=","+row[0] +                  dotslave.append(row[0]) +                  dotfrontend.append(row[0]) + +#----------------------------------Create graphviz dot files +    dotfilename="/data/srv/hobbit/server/etc/mythdot" + +    dotfile=open(dotfilename,'w') +    dotfile.write("digraph G {   " + "\n" ) +    dotfile.write("graph [bgcolor=transparent]" + "\n" ) + + +#define the nodes +    dotfile.write( dotMBE + "  \n" ) + +    dotfile.write("tunermbe"+   " [ label= \"" + tunerdict["MBE"] +     "\" , shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/tuner.png\"   fontcolor=\"white\"  color=red ]  \n" ) + +    for fe in dotfrontend: +        dotfile.write("FEND"+fe + "[ label=\"frontend \\n " + fe +     "\" ,shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/tv.png\" , fontcolor=\"white\" , imagescale=\"true\"  color=\"gold2\" ]   \n" ) + +    for fe in dotslave: +        cslave="STUNER"+fe +        if tunerdict[cslave] != "" : +    	    dotfile.write(cslave+   " [ label= \"" + tunerdict[cslave] +     "\" ,  shape=box ]     \n" ) +        dotfile.write("SLAVE"+fe + "[ label=\"slave backend \\n " + fe +     "\" shapefile=\"/data/srv/httpd/htdocs/hobbit/gifs/be.png\"  fontcolor=\"white\"  color=green ]   \n" ) + + +#connect up the nodes! +    dotfile.write("tunermbe -> MBE  [color=\"red\"] \n  "  ) + +    for fe in dotfrontend: +        dotfile.write("MBE  -> FEND" + fe + "[color=\"gold2\"]   \n  "  ) + +    for fe in dotslave: +        cslave="STUNER"+fe +        dotfile.write("SLAVE" + fe + "-> MBE [color=\"green\"]  \n  "  ) +        if tunerdict[cslave] != "" : +            dotfile.write(cslave + "-> SLAVE"+fe + "\n"  ) + + + +    dotfile.write("}  " + "\n"   ) +    dotfile.close() + + +    cmd="/usr/bin/unflatten -l6 -c3 -f " + dotfilename + " |/usr/bin/dot -Tpng  -o/data/srv/httpd/htdocs/hobbit/gifs/network.png " + #   cmd="/usr/bin/circo -Tpng  -o/data/srv/httpd/htdocs/hobbit/gifs/network.png " + dotfilename + +    results=os.popen(cmd,'r') + + #-------------------------------------------------- +    hobbitfile="/data/srv/hobbit/server/etc/hobbit-clients.cfg" +    hobbitf=open(hobbitfile,'r') +    hobbitconfig=hobbitf.readlines() +    hobbitf.close() +    hobbitf=open(hobbitfile,'w') +#    print "FE",frontonly + #   print "MBE",masterbackend +  #  print "MBEwFW",masterbacked_w_fe +   # print "SLAVEwFW",slave_w_fe +    #print "SLAVE",slave +    #print "STD",stand_alone + +    for line in hobbitconfig: +        if line.startswith("HOST"): +            cline=line.split("=") +            if cline[1].startswith("_FRONTEND_"): +                pline="HOST=" +                pline+=frontonly.strip() +                hobbitf.write(pline + "\n") +            elif cline[1].startswith("_MASTERBACKEND_"): +                pline="HOST=" +                pline+=masterbackend.strip() +                #print pline +                hobbitf.write(pline+ "\n") +            elif cline[1].startswith("_MASTERFRONTEND_"): +                pline="HOST=" +                pline+=masterbacked_w_fe.strip() +                #print pline +                hobbitf.write(pline+ "\n") +            elif cline[1].startswith("_SLAVEBACKEND_"): +                pline="HOST=" +                pline+=slave.strip() +                #print pline +                hobbitf.write(pline+ "\n") +            elif cline[1].startswith("_SLAVEFE_"): +                pline="HOST=" +                pline+=slave_w_fe.strip() +                #print pline +                hobbitf.write(pline+ "\n") +            else: +                #print line +                hobbitf.write(line) +        else: +            #print line +            hobbitf.write(line) + + + + + +#-----------------------------------------------------------END CLIENT CONFIG + + + + + + + + + + + + + +    # execute SQL statement +    cursor.execute("SELECT DISTINCT(hostname) from settings") +    result = cursor.fetchall() + +    for row in result: +       cursor.execute("select value,data  from settings where hostname=%s and value in ('HostSystemType','HostHwuuid');",(row)) +       hostvalues=cursor.fetchall() +       found_uuid="false" +       filename="/data/srv/hobbit/server/www/notes/" +       filename+=str(row[0]) +       filename+=(".html") + +       file = open(filename,'w') +       string=''' +        <html> +        <head> +            <style type="text/css">@import "/frame.css";</style> +        </head> +       ''' +       file.write(string) + + +       for i in range( 0 , len(hostvalues)): +            value=hostvalues[i][0] +            data=hostvalues[i][1] +            currenthostype='' +            currenthostname='' +            if  value == "HostHwuuid" : +                if data != "blank" : +                    found_uuid="true" +                    uuid=data +            if value == "HostSystemType" : + +                currenthostname= str(row[0]).strip() +                currenthostype=str(data).strip() +                header="<h1>" + currenthostname + "(" + currenthostype + ") </h1>" +                file.write(header + '\n') + + +       if found_uuid == "true" : +            string=str("http://smolt.mythvantage.com/client/show?uuid=") +            string+=str(uuid) +            file.write("<A href=\""  ) +            file.write(string) +            file.write("\" >" +  str(uuid)   + "</A>") +       else: +            file.write( "uuid  not found, please submit a hardware profile" ) + + + +       buttonform_top=''' +         <div class="content" style="solid #aaa; width:500px; height:350px; overflow:auto; color:#FFF;text-align:left;"> +	     <form action="/process.py" method="get"> +         ''' + + +       buttonform_bottom=''' +           <input name="param2" type="radio"  value="Update" />Update System </> +           <select name="param3"> +                   <option value="Myth_only">Myth only</option> +                   <option value="All"> Full System</option> +           </select> +           </br> +           <input name="param2" type="radio"  value="Shutdown" />Shutdown System<br /> +           <input name="param2" type="radio"  value="Reboot" />Reboot System<br /> +           <input name="param2" type="radio"  value="WOL" />Wake on Lan<br /> +           <input name="hiddenparam" type="hidden" value=" +            ''' +       oldurlform=''' +                   "/> +            <input name="param4" type="hidden" value=" +            ''' + + +       closetag=''' +           "/> +            </br> +            <input id="submitbutton" type="submit" /> +        </form> +        </div> +        ''' + +       #ordurlform=''' +            #"/> +            #<input name="param4" type="hidden" value=" +            #''' + +       if currenthostype == "Master_backend" : +            mbeoptions=createdropdown() +       else: +            mbeoptions='' +       returnurl="/hobbit/notes/" +       returnurl+=str(row[0]) +       returnurl+=(".html") +       file.write('</br> </br>  ') +       file.write(buttonform_top) +       file.write(mbeoptions) +       file.write(buttonform_bottom) +       file.write(str(row[0])) +       file.write(oldurlform) +       file.write(returnurl) +       file.write(closetag) + +       string=(' </html>') +       file.write(string) + +if __name__ == "__main__": +    main(sys.argv[1:]) diff --git a/abs/mv-core/hobbitmon/hobbit-alerts.cfg b/abs/mv-core/hobbitmon/hobbit-alerts.cfg new file mode 100644 index 0000000..66ac7e6 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit-alerts.cfg @@ -0,0 +1,124 @@ +# +# The hobbit-alerts.cfg file controls who receives alerts +# when a status in the BB system goes into a critical +# state (usually: red, yellow or purple). +# +# This file is made up from RULES and RECIPIENTS. +# +# A RULE is a filter made from the PAGE where a host +# is located in BB; the HOST name, the SERVICE name, +# the COLOR of the status, the TIME of day, and the +# DURATION of the event. +# +# A RECIPIENT can be a MAIL address, or a SCRIPT. +# +# Recipients can also have rules associated with them, +# that modify the rules for a single recipient, e.g. +# you can define a rule for alerting, then add an +# extra criteria e.g. so a single recipient does not get +# alerted until after 20 minutes. +# +# A sample rule: +# +# HOST=www.foo.com SERVICE=http +#      MAIL webadmin@foo.com REPEAT=20 RECOVERED +#      MAIL cio@foo.com DURATION>60 COLOR=red +#      SCRIPT /usr/local/bin/sendsms 1234567890 FORMAT=SMS +# +# The first line sets up a rule that catches alerts +# for the host "www.foo.com" and the "http" service. +# There are three recipients for these alerts: The first +# one is the "webadmin@foo.com" - they get alerted  +# immediately when the status goes into an alert state, +# and the alert is repeated every 20 minutes until it +# recovers. When it recovers, a message is sent about +# the recovery. +# +# The second recipient is "cio@foo.com". He gets alerted +# only when the service goes "red" for more than 60 minutes. +# +# The third recipient is a script, "/usr/local/bin/sendsms". +# The real recipient is "1234567890", but it is handled +# by the script - the script receives a set of environment +# variables with the details about the alert, including the +# real recipient. The alert message is preformatted for  +# an SMS recipient. +# +# You can use Perl-compatible "regular expressions" for +# the PAGE, HOST and SERVICE definitions, by putting a "%" +# in front of the regex. E.g. +# +# HOST=%^www.* +#      MAIL webadmin@foo.com EXHOST=www.testsite.foo.com +# +# This sets up a rule so that alerts from any hostname  +# beginning with "www" goes to "webadmin@foo.com", EXCEPT +# alerts from "www.testsite.foo.com" +# +# The following keywords are recognized: +#    PAGE      - rule matching an alert by the name of the +#                page in BB. This is the name following +#                the "page", "subpage" or "subparent" keyword +#                in the bb-hosts file. +#    EXPAGE    - rule excluding an alert if the pagename matches. +#    HOST      - rule matching an alert by the hostname. +#    EXHOST    - rule excluding an alert by matching the hostname. +#    SERVICE   - rule matching an alert by the service name. +#    EXSERVICE - rule excluding an alert by matching the hostname. +#    GROUP     - rule matching an alert by the group ID. +#                (Group ID's are associated with a status through the +#                 hobbit-clients.cfg configuration). +#    EXGROUP   - rule excluding an alert by matching the group ID. +#    COLOR     - rule matching an alert by color. Can be "red", +#                "yellow", or "purple". +#    TIME      - rule matching an alert by the time-of-day. This +#                is specified as the DOWNTIME timespecification +#                in the bb-hosts file (see bb-hosts(5)). +#    DURATION  - Rule matcing an alert if the event has lasted +#                longer/shorter than the given duration. E.g. +#                DURATION>10 (lasted longer than 10 minutes) or +#                DURARION<30 (only sends alerts the first 30 minutes). +#    RECOVERED - Rule matches if the alert has recovered from an  +#                alert state. +#    NOTICE    - Rule matches if the message is a "notify" message +#                (typically sent when a status is enabled or disabled). +#    MAIL      - Recipient who receives an e-mail alert. This takes +#                one parameter, the e-mail address. +#    SCRIPT    - Recipient that invokes a script. This takes two +#                parameters: The script filename, and the recipient +#                that gets passed to the script. +#    FORMAT    - format of the text message with the alert. Default +#                is "TEXT" (suitable for e-mail alerts). "SMS" is +#                a short message with no subject for SMS alerts. +#                "SCRIPT" is a brief message template for scripts. +#    REPEAT    - How often an alert gets repeated, in minutes. +#    STOP      - Valid for a recipient: If this recipient gets an +#                alert, recipients further down in hobbit-alerts.cfg +#                are ignored. +#    UNMATCHED - Matches if no alerts have been sent so far. +# +# +# Script get the following environment variables pre-defined so +# that they can send a meaningful alert: +# +#    BBCOLORLEVEL  - The color of the alert: "red", "yellow" or "purple" +#    BBALPHAMSG    - The full text of the status log triggering the alert +#    ACKCODE       - The "cookie" that can be used to acknowledge the alert +#    RCPT          - The recipient, from the SCRIPT entry +#    BBHOSTNAME    - The name of the host that the alert is about +#    MACHIP        - The IP-address of the host that has a problem +#    BBSVCNAME     - The name of the service that the alert is about +#    BBSVCNUM      - The numeric code for the service. From SVCCODES definition. +#    BBHOSTSVC     - HOSTNAME.SERVICE that the alert is about. +#    BBHOSTSVCCOMMAS - As BBHOSTSVC, but dots in the hostname replaced with commas +#    BBNUMERIC     - A 22-digit number made by BBSVCNUM, MACHIP and ACKCODE. +#    RECOVERED     - Is "1" if the service has recovered. +#    DOWNSECS      - Number of seconds the service has been down. +#    DOWNSECSMSG   - When recovered, holds the text "Event duration : N" where +#                    N is the DOWNSECS value. + +HOST=* SERVICE=disk +      SCRIPT /data/srv/hobbit/server/bin/hobbit_notify.sh  1234567890 FORMAT=SMS REPEAT=10h COLOR=yellow +      SCRIPT /data/srv/hobbit/server/bin/hobbit_notify.sh  1234567890 FORMAT=SMS REPEAT=1h COLOR=red + + diff --git a/abs/mv-core/hobbitmon/hobbit-clients.cfg b/abs/mv-core/hobbitmon/hobbit-clients.cfg new file mode 100755 index 0000000..c77fce8 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit-clients.cfg @@ -0,0 +1,427 @@ +# hobbit-clients.cfg - configuration file for clients reporting to Hobbit +# +# This file is used by the hobbitd_client module, when it builds the +# cpu, disk, files, memory, msgs and procs status messages from the  +# information reported by clients running on the monitored systems. +# +# This file must be installed on the Hobbit server - client installations +# do not need this file. +# +# The file defines a series of rules: +#    UP     : Changes the "cpu" status when the system has rebooted recently, +#             or when it has been running for too long. +#    LOAD   : Changes the "cpu" status according to the system load. +#    CLOCK  : Changes the "cpu" status if the client system clock is +#             not synchronized with the clock of the Hobbit server. +#    DISK   : Changes the "disk" status, depending on the amount of space +#             used of filesystems. +#    MEMPHYS: Changes the "memory" status, based on the percentage of real +#             memory used. +#    MEMACT : Changes the "memory" status, based on the percentage of "actual" +#             memory used. Note: Not all systems report an "actual" value. +#    MEMSWAP: Changes the "memory" status, based on the percentage of swap +#             space used. +#    PROC   : Changes the "procs" status according to which processes were found +#             in the "ps" listing from the client. +#    LOG    : Changes the "msgs" status according to entries in text-based logfiles. +#             Note: The "client-local.cfg" file controls which logfiles the client will report. +#    FILE   : Changes the "files" status according to meta-data for files. +#             Note: The "client-local.cfg" file controls which files the client will report. +#    DIR    : Changes the "files" status according to the size of a directory. +#             Note: The "client-local.cfg" file controls which directories the client will report. +#    PORT   : Changes the "ports" status according to which tcp ports were found +#             in the "netstat" listing from the client. +#    DEFAULT: Set the default values that apply if no other rules match. +# +# All rules can be qualified so they apply only to certain hosts, or on certain +# times of the day (see below). +# +# Each type of rule takes a number of parameters: +#    UP bootlimit toolonglimit +#             The cpu status goes yellow if the system has been up for less than +#             "bootlimit" time, or longer than "toolonglimit". The time is in +#             minutes, or you can add h/d/w for hours/days/weeks - eg. "2h" for +#             two hours, or "4w" for 4 weeks. +#             Defaults: bootlimit=1h, toolonglimit=-1 (infinite). +# +#    LOAD warnlevel paniclevel +#             If the system load exceeds "warnlevel" or "paniclevel", the "cpu" +#             status will go yellow or red, respectively. These are decimal +#             numbers. +#             Defaults: warnlevel=5.0, paniclevel=10.0 +# +#    CLOCK maximum-offset +#             If the system clock of the client differs from that of the Hobbit +#             server by more than "maximum-offset" seconds, then the CPU status +#             column will go yellow. Note that the accuracy of this test is limited, +#             since it is affected by the time it takes a client status report to +#             go from the client to the Hobbit server and be processed. You should +#             therefore allow for a few seconds (5-10) of slack when you define +#             your max. offset. +#             It is not wise to use this test, unless your servers are synchronized +#             to a common clock, e.g. through NTP. +# +#    DISK filesystem warnlevel paniclevel +#    DISK filesystem IGNORE +#             If the utilization of "filesystem" is reported to exceed "warnlevel" +#             or "paniclevel", the "disk" status will go yellow or red, respectively. +#             "warnlevel" and "paniclevel" are either the percentage used, or the +#             space available as reported by the local "df" command on the host. +#             For the latter type of check, the "warnlevel" must be followed by the +#             letter "U", e.g. "1024U". +#             The special keyword "IGNORE" causes this filesystem to be ignored +#             completely, i.e. it will not appear in the "disk" status column and +#             it will not be tracked in a graph. This is useful for e.g. removable +#             devices, backup-disks and similar hardware. +#             "filesystem" is the mount-point where the filesystem is mounted, e.g. +#             "/usr" or "/home". A filesystem-name that begins with "%" is interpreted +#             as a Perl-compatible regular expression; e.g. "%^/oracle.*/" will match +#             any filesystem whose mountpoint begins with "/oracle". +#             Defaults: warnlevel=90%, paniclevel=95% +# +#    MEMPHYS warnlevel paniclevel +#    MEMACT warnlevel paniclevel +#    MEMSWAP warnlevel paniclevel +#             If the memory utilization exceeds the "warnlevel" or "paniclevel", the +#             "memory" status will change to yellow or red, respectively. +#             Note: The words "PHYS", "ACT" and "SWAP" are also recognized. +#             Defaults: MEMPHYS warnlevel=100 paniclevel=101 (i.e. it will never go red) +#                       MEMSWAP warnlevel=50 paniclevel=80 +#                       MEMACT  warnlevel=90 paniclevel=97 +# +#    PROC processname minimumcount maximumcount color [TRACK=id] [TEXT=displaytext] +#             The "ps" listing sent by the client will be scanned for how many +#             processes containing "processname" are running, and this is then +#             matched against the min/max settings defined here. If the running +#             count is outside the thresholds, the color of the "procs" status +#             changes to "color". +#             To check for a process that must NOT be running: Set minimum and  +#             maximum to 0. +# +#             "processname" can be a simple string, in which case this string must +#             show up in the "ps" listing as a command. The scanner will find +#             a ps-listing of e.g. "/usr/sbin/cron" if you only specify "processname" +#             as "cron". +#             "processname" can also be a Perl-compatiable regular expression, e.g. +#             "%java.*inst[0123]" can be used to find entries in the ps-listing for +#             "java -Xmx512m inst2" and "java -Xmx256 inst3". In that case,  +#             "processname" must begin with "%" followed by the reg.expression. +#             If "processname" contains whitespace (blanks or TAB), you must enclose +#             the full string in double quotes - including the "%" if you use regular +#             expression matching. E.g. +#                 PROC "%hobbitd_channel --channel=data.*hobbitd_rrd" 1 1 yellow +#             or +#                 PROC "java -DCLASSPATH=/opt/java/lib" 2 5 +# +#             You can have multiple "PROC" entries for the same host, all of the +#             checks are merged into the "procs" status and the most severe +#             check defines the color of the status. +# +#             The TRACK=id option causes the number of processes found to be recorded +#             in an RRD file, with "id" as part of the filename. This graph will then +#             appear on the "procs" page as well as on the "trends" page. Note that +#             "id" must be unique among the processes tracked for each host. +# +#             The TEXT=displaytext option affects how the process appears on the +#             "procs" status page. By default, the process is listed with the +#             "processname" as identification, but if this is a regular expression +#             it may be a bit difficult to understand. You can then use e.g. +#             "TEXT=Apache" to make these processes appear with the name "Apache" +#             instead. +# +#             Defaults: mincount=1, maxcount=-1 (unlimited), color="red". +#                       Note: No processes are checked by default. +# +#             Example: Check that "cron" is running: +#                 PROC cron +#             Example: Check that at least 5 "httpd" processes are running, but +#             not more than 20: +#                 PROC httpd 5 20 +# +#    LOG filename match-pattern [COLOR=color] [IGNORE=ignore-pattern] [TEXT=displaytext] +#             In the "client-local.cfg" file, you can list any number of files +#             that the client will collect log data from. These are sent to the +#             Hobbit server together with the other client data, and you can then +#             choose how to analyze the log data with LOG entries. +# +#                             ************ IMPORTANT *************** +#             To monitor a logfile, you *MUST* configure both client-local.cfg +#             and hobbit-clients.cfg. If you configure only the client-local.cfg +#             file, the client will collect the log data and you can view it in  +#             the "client data" display, but it will not affect the color of the +#             "msgs" status. On the other hand, if you configure only the +#             hobbit-clients.cfg file, then there will be no log data to inspect, +#             and you will not see any updates of the "msgs" status either. +# +#             "filename" is a filename or pattern. The set of files reported by +#             the client is matched against "filename", and if they match then +#             this LOG entry is processed against the data from a file. +# +#             "match-pattern": The log data is matched against this pattern. If +#             there is a match, this log file causes a status change to "color". +# +#             "ignore-pattern": The log data that matched "match-pattern" is also +#             matched against "ignore-pattern". If the data matches the "ignore-pattern", +#             this line of data does not affect the status color. In other words, +#             the "ignore-pattern" can be used to refine the strings which cause +#             a match. +#             Note: The "ignore-pattern" is optional. +# +#             "color": The color which this match will trigger. +#             Note: "color" is optional, if omitted then "red" will be used. +# +#             Example: Go yellow if the text "WARNING" shows up in any logfile. +#                 LOG %.* WARNING COLOR=yellow +# +#             Example: Go red if the text "I/O error" or "read error" appears. +#                 LOG %/var/(adm|log)/messages %(I/O|read).error COLOR=red +# +#    FILE filename [color] [things to check] [TRACK] +#             NB: The files you wish to monitor must be listed in a "file:..." +#             entry in the client-local.cfg file, in order for the client to  +#             report any data about them. +# +#             "filename" is a filename or pattern. The set of files reported by +#             the client is matched against "filename", and if they match then +#             this FILE entry is processed against the data from that file. +# +#             [things to check] can be one or more of the following: +#             - "NOEXIST" triggers a warning if the file exists. By default, +#               a warning is triggered for files that have a FILE entry, but +#               which do not exist. +#             - "TYPE=type" where "type" is one of "file", "dir", "char", "block",  +#               "fifo", or "socket". Triggers warning if the file is not of the +#               specified type. +#             - "OWNERID=owner" and "GROUPID=group" triggers a warning if the owner +#               or group does not match what is listed here. "owner" and "group" is +#               specified either with the numeric uid/gid, or the user/group name. +#             - "MODE=mode" triggers a warning if the file permissions are not +#               as listed. "mode" is written in the standard octal notation, e.g. +#               "644" for the rw-r--r-- permissions. +#             - "SIZE<max.size" and "SIZE>min.size" triggers a warning it the file +#               size is greater than "max.size" or less than "min.size", respectively. +#               You can append "K" (KB), "M" (MB), "G" (GB) or "T" (TB) to the size. +#               If there is no such modifier, KB is assumed. +#               E.g. to warn if a file grows larger than 1MB (1024 KB): "SIZE<1M". +#             - "SIZE=size" triggers a warning it the file size is not what is listed. +#             - "MTIME>min.mtime" and "MTIME<max.mtime" checks how long ago the file +#               was last modified (in seconds). E.g. to check if a file was updated +#               within the past 10 minutes (600 seconds): "MTIME<600". Or to check  +#               that a file has NOT been updated in the past 24 hours: "MTIME>86400". +#             - "MTIME=timestamp" checks if a file was last modified at "timestamp". +#               "timestamp" is a unix epoch time (seconds since midnight Jan 1 1970 UTC). +#             - "CTIME>min.ctime", "CTIME<max.ctime", "CTIME=timestamp" acts as the +#               mtime checks, but for the ctime timestamp (when the files' directory +#               entry was last changed, eg. by chown, chgrp or chmod). +#             - "MD5=md5sum", "SHA1=sha1sum", "RMD160=rmd160sum" trigger a warning  +#               if the file checksum using the MD5, SHA1 or RMD160 message digest +#               algorithms do not match the one configured here. Note: The "file" +#               entry in the client-local.cfg file must specify which algorithm to use. +# +#             "TRACK" causes the size of this file to be tracked in an RRD file, and +#             shown on the graph on the "files" display. +# +#             Example: Check that the /var/log/messages file is not empty and was updated +#                      within the past 10 minutes, and go yellow if either fails: +#                 FILE /var/log/messages SIZE>0 MTIME<600 yellow +# +#             Example: Check the timestamp, size and SHA-1 hash of the /bin/sh program: +#                 FILE /bin/sh MTIME=1128514608 SIZE=645140 SHA1=5bd81afecf0eb93849a2fd9df54e8bcbe3fefd72 +# +#    DIR directory [color] [SIZE<maxsize] [SIZE>minsize] [TRACK] +#             NB: The directories you wish to monitor must be listed in a "dir:..." +#             entry in the client-local.cfg file, in order for the client to  +#             report any data about them. +# +#             "directory" is a filename or pattern. The set of directories reported by +#             the client is matched against "directory", and if they match then +#             this DIR entry is processed against the data for that directory. +# +#             "SIZE<maxsize" and "SIZE>minsize" defines the size limits that the +#             directory must stay within. If it goes outside these limits, a warning +#             will trigger. Note the Hobbit uses the raw number reported by the +#             local "du" command on the client. This is commonly KB, but it may be +#             disk blocks which are often 512 bytes. +# +#             "TRACK" causes the size of this directory to be tracked in an RRD file,  +#             and shown on the graph on the "files" display. +# +#    PORT [LOCAL=addr] [EXLOCAL=addr] [REMOTE=addr] [EXREMOTE=addr] [STATE=state] [EXSTATE=state] [MIN=mincount] [MAX=maxcount] [COLOR=color] [TRACK=id] [TEXT=displaytext] +#             The "netstat" listing sent by the client will be scanned for how many +#             sockets match the criteria listed. +#             "addr" is a (partial) address specification in the format used on  +#             the output from netstat. This is typically "10.0.0.1:80" for the IP  +#             10.0.0.1, port 80. Or "*:80" for any local address, port 80. +#             NB: The Hobbit clients normally report only the numeric data for +#                 IP-adresses and port-numbers, so you must specify the port +#                 number (e.g. "80") instead of the service name ("www"). +#             "state" causes only the sockets in the specified state to be included; +#             it is usually LISTEN or ESTABLISHED. +#             The socket count is then matched against the min/max settings defined  +#             here. If the count is outside the thresholds, the color of the "ports"  +#             status changes to "color". +#             To check for a socket that must NOT exist: Set minimum and +#             maximum to 0. +# +#             "addr" and "state" can be a simple strings, in which case these string must  +#             show up in the "netstat" at the appropriate column. +#             "addr" and "state" can also be a Perl-compatiable regular expression, e.g. +#             "LOCAL=%(:80|:443)" can be used to find entries in the netstat local port for +#             both http (port 80) and https (port 443). In that case, portname or state must  +#             begin with "%" followed by the reg.expression. +# +#             The TRACK=id option causes the number of sockets found to be recorded +#             in an RRD file, with "id" as part of the filename. This graph will then +#             appear on the "ports" page as well as on the "trends" page. Note that +#             "id" must be unique among the ports tracked for each host. +# +#             The TEXT=displaytext option affects how the port appears on the +#             "ports" status page. By default, the port is listed with the +#             local/remote/state rules as identification, but this may be somewhat +#             difficult to understand. You can then use e.g. "TEXT=Secure Shell" to make  +#             these ports appear with the name "Secure Shell" instead. +# +#             Defaults: state="LISTEN", mincount=1, maxcount=-1 (unlimited), color="red". +#                       Note: No ports are checked by default. +# +#             Example: Check that there is someone listening on the https port: +#                 PORT "LOCAL=%([.:]443)$" state=LISTEN TEXT=https +# +#             Example: Check that at least 5 "ssh" connections are established, but +#             not more than 10; warn but do not error; graph the connection count: +#                 PORT "LOCAL=%([.:]22)$" state=ESTABLISHED min=5 max=20 color=yellow TRACK=ssh "TEXT=SSH logins" +# +#             Example: Check that ONLY ports 22, 80 and 443 are open for incoming connections: +#                 PORT STATE=LISTEN LOCAL=%0.0.0.0[.:].* EXLOCAL=%[.:](22|80|443)$ MAX=0 "TEXT=Bad listeners" +# +# +# To apply rules to specific hosts, you can use the "HOST=", "EXHOST=", "PAGE="  +# "EXPAGE=", "CLASS=" or "EXCLASS=" qualifiers.  (These act just as in the  +# hobbit-alerts.cfg file). +# +# Hostnames are either a comma-separated list of hostnames (from the bb-hosts file),  +# "*" to indicate "all hosts", or a Perl-compatible regular expression. +# E.g. "HOST=dns.foo.com,www.foo.com" identifies two specific hosts;  +# "HOST=%www.*.foo.com EXHOST=www-test.foo.com" matches all hosts with a name +# beginning with "www", except the "www-test" host. +# "PAGE" and "EXPAGE" match the hostnames against the page on where they are +# located in the bb-hosts file, via the bb-hosts' page/subpage/subparent +# directives. This can be convenient to pick out all hosts on a specific page. +# +# Rules can be dependant on time-of-day, using the standard Hobbit syntax  +# (the bb-hosts(5) about the NKTIME parameter). E.g. "TIME=W:0800:2200" +# applied to a rule will make this rule active only on week-days between +# 8AM and 10PM. +# +# You can also associate a GROUP id with a rule. The group-id is passed to +# the alert module, which can then use it to control who gets an alert when +# a failure occurs. E.g. the following associates the "httpd" process check  +# with the "web" group, and the "sshd" check with the "admins" group: +#    PROC httpd 5 GROUP=web +#    PROC sshd 1 GROUP=admins +# In the hobbit-alerts.cfg file, you could then have rules like +#    GROUP=web +#       MAIL webmaster@foo.com +#    GROUP=admins +#       MAIL root@foo.com +# +# Qualifiers must be placed after each rule, e.g. +#    LOAD 8.0 12.0  HOST=db.foo.com TIME=*:0800:1600 +# +# If you have multiple rules that you want to apply the same qualifiers to, +# you can write the qualifiers *only* on one line, followed by the rules. E.g. +#    HOST=%db.*.foo.com TIME=W:0800:1600 +#       LOAD 8.0 12.0 +#       DISK /db  98 100 +#       PROC mysqld 1 +# will apply the three rules to all of the "db" hosts on week-days between 8AM +# and 4PM. This can be combined with per-rule qualifiers, in which case the +# per-rule qualifier overrides the general qualifier; e.g. +#    HOST=%.*.foo.com +#       LOAD 7.0 12.0 HOST=bax.foo.com +#       LOAD 3.0 8.0 +# will result in the load-limits being 7.0/12.0 for the "bax.foo.com" host, +# and 3.0/8.0 for all other foo.com hosts. +# +# The special DEFAULT section can modify the built-in defaults - this must +# be placed at the end of the file. + +HOST=_MASTERBACKEND_ +	PROC sshd 1  +	PROC lighttpd   +	PROC hobbitd +   	PROC crond +	PROC mysql +	PROC mythbackend +        DISK  *  95 99 +        PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http +	PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh + +HOST=_MASTERFRONTEND_ +	PROC mythfrontend +	PROC sshd 1  +	PROC lighttpd   +	PROC hobbitd +   	PROC crond +	PROC mysql +	PROC mythbackend +       DISK  *  95 99 +        PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http +	PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh +        PORT "LOCAL=%([.:]5000)$" state=LISTEN TEXT=ghosd +        PORT "LOCAL=%([.:]5001)$" state=LISTEN TEXT=ghosd + + +HOST=_FRONTEND_ +	PROC sshd 1  +   	PROC crond +	PROC mythfrontend +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh +        PORT "LOCAL=%([.:]5000)$" state=LISTEN TEXT=ghosd +        PORT "LOCAL=%([.:]5001)$" state=LISTEN TEXT=ghosd + +HOST=_SLAVEBACKEND_ +	PROC sshd 1  +	PROC crond +	PROC mythbackend +       DISK  *  95 99 +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh + +HOST=_SLAVEFRONTEND_ +	PROC sshd 1  +	PROC lighttpd   +	PROC hobbitd +   	PROC crond +	PROC mythbackend +	PROC mythfrontend +       DISK  *  95 99 +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh +        PORT "LOCAL=%([.:]5000)$" state=LISTEN TEXT=ghosd +        PORT "LOCAL=%([.:]5001)$" state=LISTEN TEXT=ghosd + +HOST=_STANDALONE_ +	PROC sshd 1  +	PROC lighttpd   +	PROC hobbitd +   	PROC crond +	PROC mysql +	PROC mythbackend +       DISK  *  95 99 +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh +        PORT "LOCAL=%([.:]5000)$" state=LISTEN TEXT=ghosd +        PORT "LOCAL=%([.:]5001)$" state=LISTEN TEXT=ghosd +        PORT "LOCAL=%([.:]80)$" state=LISTEN TEXT=http +	PORT "LOCAL=%([.:]1337)$" state=LISTEN TEXT=cgi +        PORT "LOCAL=%([.:]22)$" state=LISTEN TEXT=ssh + +DEFAULT +	# These are the built-in defaults. +	UP      1h +	LOAD    5.0 10.0 +	DISK    * 99 100 +	MEMPHYS 100 101 +	MEMSWAP 50 80 +	MEMACT  90 97 + diff --git a/abs/mv-core/hobbitmon/hobbit-mem-myth.sh b/abs/mv-core/hobbitmon/hobbit-mem-myth.sh new file mode 100755 index 0000000..642672f --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit-mem-myth.sh @@ -0,0 +1,52 @@ +#!/bin/bash +MBEPID=`ps -ef|grep mythbackend |grep -v runsv|grep -v grep|grep -v logger|awk '{print $2 }'` +MFEPID=`ps -ef|grep mythfrontend |grep -v runsv|grep -v grep|grep -v logger|awk '{print $2 }'` + + + +COLOR=green      # By default, everything is OK + +   # Do whatever you need to test for something +if [ ! x$MBEPID = x ] +then +VmSize=`cat /proc/$MBEPID/status|grep -i vmsize|awk '{print $2 }'` +VmPeak=`cat /proc/$MBEPID/status|grep -i vmpeak|awk '{print $2 }'` +VmRSS=`cat /proc/$MBEPID/status|grep -i vmrss |awk '{print $2 }'` +MSGMBE=" +	VmSize:$VmSize +	VmPeak:$VmPeak +	VmRSS:$VmRSS +	" +#	echo $MSGMBE + # Tell Hobbit about it +   $BB $BBDISP "data $MACHINE.memmbe $COLOR `date` + +   ${MSGMBE} + +   "  +fi +    + + +if [ ! x$MFEPID = x ] +then +VmSize=`cat /proc/$MFEPID/status|grep -i vmsize|awk '{print $2 }'` +VmPeak=`cat /proc/$MFEPID/status|grep -i vmpeak|awk '{print $2 }'` +VmRSS=`cat /proc/$MFEPID/status|grep -i vmrss |awk '{print $2 }'` +MSGMBE=" +	VmSize:$VmSize +	VmPeak:$VmPeak +	VmRSS:$VmRSS +	" +#	echo $MSGMBE + # Tell Hobbit about it +   $BB $BBDISP "data $MACHINE.memmfe $COLOR `date` + +   ${MSGMBE} + +   "  +fi +    + + + diff --git a/abs/mv-core/hobbitmon/hobbit-myth-orphan.sh b/abs/mv-core/hobbitmon/hobbit-myth-orphan.sh new file mode 100755 index 0000000..f9f7d54 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit-myth-orphan.sh @@ -0,0 +1,54 @@ +#!/bin/bash +TMPFILE=/tmp/oprhan.result +/usr/local/bin/myth.find_orphans.pl > $TMPFILE + + +   COLUMN=orphan    # Name of the column +   COLOR=green      # By default, everything is OK + +   # Do whatever you need to test for something +   # As an example, go red if /tmp/badstuff exists. + +thumbs=`grep -A 4 "Summary:" $TMPFILE  |tail -n 1  |  cut  -d" "   -f3 ` +if [ !  x$thumbs  = x0 ] +then +    MSG="$thumbs orphaned thumbnails with no corresponding recording" +    COLOR='yellow' +fi + +missing=`grep -A 2 "Summary:" $TMPFILE  |tail -n 1 | cut -d, -f2 | cut  -d" "  -f2 ` +if [ !  x$missing  = x0 ] +then +	COLOR='red' +MSG="${MSG} +   `grep -A 2 "Summary:" $TMPFILE  |tail -n 1 ` " +fi + +unkown=`grep -A 5 "Summary:" $TMPFILE  |tail -n 1  |  cut  -d" "   -f3 ` +if [ !  x$unkown  = x0 ] +then +	COLOR='red' +MSG="${MSG} +`grep -A 5 "Summary:" $TMPFILE  |tail -n 1  `" +fi + + +MSG="${MSG} +	 + +	`cat $TMPFILE` +	" + +   # Tell Hobbit about it +   $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date` +/usr/local/bin/myth.find_orphans.pl + +   ${MSG} + +   "  + +   exit 0 + + + + diff --git a/abs/mv-core/hobbitmon/hobbit.install b/abs/mv-core/hobbitmon/hobbit.install new file mode 100755 index 0000000..a39308d --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit.install @@ -0,0 +1,32 @@ +post_install() { +	. /etc/systemconfig +	if  [ ! -f   /data/srv/hobbit/server/ext/ignoreclient.py ] +	then +		echo "#this is a list of hosts to ignore" >  /data/srv/hobbit/server/ext/ignoreclient.py  +		echo ignorehosts=\"\'ignoreme1\',\'ignoreme2\'\" >> /data/srv/hobbit/server/ext/ignoreclient.py  +	fi +	sed -i -e "s/localhost/$hostname/" /data/srv/hobbit/server/etc/bb-hosts +	sed -i -e "s/localhost/$hostname/" /data/srv/hobbit/server/etc/hobbitserver.cfg +	chown -R nobody /data/srv/hobbit +	chown -R nobody /data/srv/httpd/htdocs/hobbit +	chown -R nobody /var/log/hobbit +	chown root /data/srv/hobbit/server/bin/hobbitping +	chmod +s /data/srv/hobbit/server/bin/hobbitping + +} + +post_upgrade() { +  post_install $1 +} + +post_remove() { + rm -f /data/srv/httpd/htdocs/hobbit/index.html +} + +pre_remove() { + rm -f /data/srv/httpd/htdocs/hobbit/index.html +} +op=$1 +shift +$op $* +# vim: ft=sh ts=2 diff --git a/abs/mv-core/hobbitmon/hobbit_myth_data.py b/abs/mv-core/hobbitmon/hobbit_myth_data.py new file mode 100755 index 0000000..14e3304 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit_myth_data.py @@ -0,0 +1,91 @@ +#!/usr/bin/python +# checks for the number of days of guide data left +# make sure myth_mtc ran ok + + +import urllib2 +import string +import time +import sys,os +BBLINE = '' +BBCOLOR="green" +DATE = time.strftime("%a %b %d %H:%M:%S %Z %Y", time.localtime(time.time())) +if os.environ['BB']: +    #print os.environ['BB'] +    BB=os.environ['BB'] +if os.environ['BBDISP']: +    #print os.environ['BBDISP'] +    BBDISP=os.environ['BBDISP'] +if os.environ['MACHINE']: +     #print os.environ['MACHINE'] +     MACHINE=os.environ['MACHINE'] + + + + +def check_mtc(): +    try: +        infile = open('/var/log/myth_mtc.log', 'r') +    except(IOError), e: +        print "couldn't open myth_mtc.log file" +        return False +    else: +        mtc = infile.readlines() +        for i in mtc: +           line=i +        infile.close() +    if line.strip() == "Finished": +        return True +    else: +        return False + +def find_data_left(): +	try: +		f = urllib2.urlopen("http://localhost:6544") +	except urllib2.HTTPError, e: +		if e.code != 200: +			print 'error: could not find Masterbackend' +			days_left=-100 +	else: +		MBE_data = f.readlines() +		f.close() +        for line in MBE_data: +            if line.find("guide data") != -1: +                if line.find("no guide data") != -1: +                    days_left = 0 +                else: +                    line=line.split("(") +                    line=line[1].split(")") +                    days_left=line[0].split()[0] +                return days_left + + +mtc=check_mtc() +num_days=find_data_left() + +if mtc: +    BBCOLOR="green" +    msg="\n Maintenace script ran ok \n " +else: +    BBCOLOR ="yellow" +    msg="\n Maintenance script didn't run \n" + +if num_days ==  1 : +    BBCOLOR="yellow" +    msg+="Only 1 day of guide data left" +elif num_days == 0 : +    BBCOLOR="yellow" +    msg+="No guide data available" +else: +    data_check = True +    BBCOLOR="green" +    msg+="%s days of guide data" %(num_days) + +BBLINE=msg +LINE = "status " + MACHINE  + ".myth_mtc" + " " + BBCOLOR +  " " + DATE + " " + BBLINE +cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +os.system(cmd) + +sys.exit(0) + + diff --git a/abs/mv-core/hobbitmon/hobbit_notify.sh b/abs/mv-core/hobbitmon/hobbit_notify.sh new file mode 100755 index 0000000..7569e2a --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbit_notify.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +#    BBCOLORLEVEL  - The color of the alert: "red", "yellow" or "purple" +#    BBALPHAMSG    - The full text of the status log triggering the alert +#    ACKCODE       - The "cookie" that can be used to acknowledge the alert +#    RCPT          - The recipient, from the SCRIPT entry +#    BBHOSTNAME    - The name of the host that the alert is about +#    MACHIP        - The IP-address of the host that has a problem +#    BBSVCNAME     - The name of the service that the alert is about +#    BBSVCNUM      - The numeric code for the service. From SVCCODES definition. +#    BBHOSTSVC     - HOSTNAME.SERVICE that the alert is about. +#    BBHOSTSVCCOMMAS - As BBHOSTSVC, but dots in the hostname replaced with commas +#    BBNUMERIC     - A 22-digit number made by BBSVCNUM, MACHIP and ACKCODE. +#    RECOVERED     - Is "1" if the service has recovered. +#    DOWNSECS      - Number of seconds the service has been down. +#    DOWNSECSMSG   - When recovered, holds the text "Event duration : N" where +echo $BBCOLORLEVEL  > /tmp/hobbitout +echo $BBALPHAMSG >>/tmp/hobbitout +echo $RCPT >>/tmp/hobbitout +echo $BBHOSTNAME >>/tmp/hobbitout +echo $BBSVCNAME >>/tmp/hobbitout +echo $BBHOSTSVC >>/tmp/hobbitout + +#BBCOLORLEVEL=red +#BBCOLORLEVEL=yellow +#BBALPHAMSG="vmtest:disk red [751147]" +#BBHOSTNAME="vmtest" +#BBSVCNAME="disk" +#BBHOSTSVC="vmtest.disk" + +if  [ x$BBSVCNAME = xdisk ] +then +	case $BBCOLORLEVEL in  +		red )	 +			/usr/bin/notify.py ALT "$BBHOSTNAME disk is full" +		;; +		yellow ) + +			/usr/bin/notify.py PHN "$BBHOSTNAME disk almost full " +		;; +	esac +fi + + + + + + diff --git a/abs/mv-core/hobbitmon/hobbitadd.py b/abs/mv-core/hobbitmon/hobbitadd.py new file mode 100755 index 0000000..b8ae15d --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitadd.py @@ -0,0 +1,87 @@ +#!/usr/bin/python +#polls the hobbit server for ghost clients.  If it finds ghosts it will make a new bb-hosts file  +#with the new clients.  +#Will not add duplicate clients +#return code of 0 means a new file was written, anything else is an error or no inserts occured +import urllib2 +import string +import sys + + +def readbb(): +	global bblist +	try: +		infile = open('/data/srv/hobbit/etc/bb-hosts', 'r') +	except(IOError), e: +	  print "couldn't open bb-hosts file" +       	  sys.exit(1) +    	else: +    		bblist = infile.readlines() +		infile.close() + + +def findghosts(): +	global infile +	global bblist +	global ghostitems +	global numberitems +	try: +		f = urllib2.urlopen("http://localhost/hobbit/hobbit-cgi/hobbit-ghosts.sh?SORT=name&MAXAGE=300&TEXT") +	except urllib2.HTTPError, e: +		if e.code != 200: +			print 'error find ghost list' +			sys.exit(1) +	else: +		ghostitems = f.readlines() +		f.close() +		numberitems = len(ghostitems) +		 + +def makenewbb(): +	global bblist +	global ghostitems +	global numberitems +	global numinserts +	numinserts=0 +	outlist = [] +	for item in bblist: +		if item not in outlist: +			outlist.append(item) +	 +	for item in ghostitems: +		line = item.rstrip() +		nline = "%s #func" % (line) +		nline = nline + '\n' +		if nline not in outlist: +			outlist.append(nline) +			print "adding: " + nline +			numinserts = numinserts + 1 +	if numinserts > 0: +		outfile = open("/data/srv/hobbit/etc/bb-hosts","w") +		#outfile = open("/tmp/new-bb","w") +		for i in outlist: +			outfile.write(i + '\n' ) +		outfile.close + + +global infile +global bblist +global ghostitems +global numberitems +global numinserts + +readbb() +findghosts() +print numberitems +if numberitems > 0: +	makenewbb() +else: +	print "nothing to add" +	 +	 +if numinserts < 1: +	sys.exit(1) +else: +	sys.exit(0) +	 +	 diff --git a/abs/mv-core/hobbitmon/hobbitcheck.sh b/abs/mv-core/hobbitmon/hobbitcheck.sh new file mode 100755 index 0000000..70f6508 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitcheck.sh @@ -0,0 +1,6 @@ +#!/bin/bash +su nobody -c /data/srv/hobbit/server/bin/hobbitadd.py +#if [ $? = 0 ] +#then +#	sv restart hobbit +#fi diff --git a/abs/mv-core/hobbitmon/hobbitgraph.cfg.diff b/abs/mv-core/hobbitmon/hobbitgraph.cfg.diff new file mode 100644 index 0000000..1ca4caf --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitgraph.cfg.diff @@ -0,0 +1,42 @@ +--- hobbitgraph.cfg.orig	2008-01-08 09:24:59.000000000 -0600 ++++ hobbitgraph.cfg	2008-01-08 09:12:51.000000000 -0600 +@@ -1135,4 +1135,39 @@ + 	GPRINT:cnt@RRDIDX@:MIN: %6.1lf (min) \: + 	GPRINT:cnt@RRDIDX@:AVERAGE: %6.1lf (avg)\n +  ++[storage] ++	TITLE Storage Groups  ++	YAXIS  recordings ++	DEF:storage1=storage.rrd:rectvtotal:AVERAGE ++	LINE2:storage1#00CCCC:current recorded +  ++	DEF:rectime=storage.rrd:rectvtime:AVERAGE ++	LINE2:rectime#000000:current recorded time ++ ++	DEF:livetime=storage.rrd:livetvtime:AVERAGE ++	LINE2:livetime#00CC11:current live  time ++ ++ ++[memmbe] ++	TITLE Memory usage for MythBackend ++	YAXIS mythbackend ++	DEF:vmsize=memmbe.rrd:VmSize:AVERAGE ++	LINE2:vmsize#00CCCC:vmsize ++ ++	DEF:vmpeak=memmbe.rrd:VmPeak:AVERAGE ++	LINE2:vmpeak#000000:vmpeak ++ ++	DEF:vmrss=memmbe.rrd:VmRSS:AVERAGE ++	LINE2:vmrss#00CC11:vmrss ++ ++[memmfe] ++	TITLE Memory usage for MythFrontend ++	YAXIS mythfrontend ++	DEF:vmsize=memmfe.rrd:VmSize:AVERAGE ++	LINE2:vmsize#00CCCC:vmsize ++ ++	DEF:vmpeak=memmfe.rrd:VmPeak:AVERAGE ++	LINE2:vmpeak#000000:vmpeak ++ ++	DEF:vmrss=memmfe.rrd:VmRSS:AVERAGE ++	LINE2:vmrss#00CC11:vmrss diff --git a/abs/mv-core/hobbitmon/hobbitlaunch.cfg.diff b/abs/mv-core/hobbitmon/hobbitlaunch.cfg.diff new file mode 100644 index 0000000..6239125 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitlaunch.cfg.diff @@ -0,0 +1,40 @@ +--- hobbitlaunch.cfg.orig	2008-02-10 22:30:16.000000000 +0000 ++++ hobbitlaunch.cfg	2008-08-09 07:05:14.000000000 +0000 +@@ -204,3 +204,37 @@ + 	LOGFILE $BBSERVERLOGS/hobbitclient.log + 	INTERVAL 5m +  ++[storage] ++	 ++	ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++	CMD /data/srv/hobbit/server/ext/hobbitstorage.py ++	LOGFILE $BBSERVERLOGS/bb-storage.log ++	INTERVAL 5m ++[notes] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD /data/srv/hobbit/server/ext/hbnotes.py ++       LOGFILE $BBSERVERLOGS/bb-notes.log ++       INTERVAL 5m ++[orphan] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD /data/srv/hobbit/server/ext/hobbit-myth-orphan.sh ++       LOGFILE $BBSERVERLOGS/orphan.log ++       INTERVAL 5m ++  ++[func] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD sudo /data/srv/hobbit/server/ext/hbfunc.py ++       LOGFILE $BBSERVERLOGS/hbfunc.log ++       INTERVAL 5m ++ ++[memmyth] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD  /data/srv/hobbit/server/ext/hobbit-mem-myth.sh ++       LOGFILE $BBSERVERLOGS/mythmem.log ++       INTERVAL 5m ++ ++[mtc] ++       ENVFILE /data/srv/hobbit/server/etc/hobbitserver.cfg ++       CMD  /data/srv/hobbit/server/ext/hobbit_myth_data.py ++       LOGFILE $BBSERVERLOGS/mtc ++       INTERVAL 5m diff --git a/abs/mv-core/hobbitmon/hobbitserver.cfg.diff b/abs/mv-core/hobbitmon/hobbitserver.cfg.diff new file mode 100644 index 0000000..7c829fe --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitserver.cfg.diff @@ -0,0 +1,45 @@ +--- hobbitserver.cfg.orig	2008-01-08 15:25:34.000000000 +0000 ++++ hobbitserver.cfg	2008-01-08 16:22:56.000000000 +0000 +@@ -105,7 +105,7 @@ + CONNTEST="TRUE"					# Should we 'ping' hosts ? + IPTEST_2_CLEAR_ON_FAILED_CONN="TRUE"		# If TRUE, then failing network tests go CLEAR if conn-test fails. + NONETPAGE=""					# Network tests that go YELLOW upon failure +-FPING="/usr/sbin/fping"					# Path and options for the ping program. ++FPING="hobbitping"					# Path and options for the ping program. + NTPDATE="ntpdate"				# Path to the 'ntpdate' program + TRACEROUTE="traceroute"                         # How to do traceroute on failing ping tests. Requires "trace" in bb-hosts. + BBROUTERTEXT="router"				# What to call a failing intermediate network device. +@@ -120,7 +120,9 @@ + # Size of the generated graph images + RRDHEIGHT="120" + RRDWIDTH="576"		# The RRD's contain 576 data points, so this is a good value +- ++NCV_storage="*:GAUGE" ++NCV_memmbe="*:GAUGE" ++NCV_memmfe="*:GAUGE" + # TEST2RRD defines the status- and data-messages you want to collect RRD data + # about. You will normally not need to modify this, unless you have added a + # script to pick up RRD data from custom tests (the hobbitd_larrd --extra-script +@@ -132,11 +134,11 @@ + # + # This is also used by the bb-hostsvc.cgi script to determine if the detailed + # status view of a test should include a graph. +-TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines" ++TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,storage=ncv,memmbe=ncv,memmfe=ncv" +  + # This defines which RRD files to include on the "trends" column webpage, + # and the order in which they appear. +-GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines" ++GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,storage,memmbe,memmfe" +  + # These two settings can be used to restrict what filesystems are being + # tracked (i.e. have their utilisation graphed) by Hobbit. +@@ -158,7 +160,7 @@ + HTMLCONTENTTYPE="text/html"                     # You can add charset options here. +  + # Fonts and texts +-HOBBITLOGO="Hobbit"                             # HTML inserted on all header pages at top-left corner. ++HOBBITLOGO=""                             # HTML inserted on all header pages at top-left corner. + MKBBLOCAL="<B><I>Pages Hosted Locally</I></B>" + MKBBREMOTE="<B><I>Remote Status Display</I></B>" + MKBBSUBLOCAL="<B><I>Subpages Hosted Locally</I></B>" diff --git a/abs/mv-core/hobbitmon/hobbitstorage.py b/abs/mv-core/hobbitmon/hobbitstorage.py new file mode 100755 index 0000000..e79f8d1 --- /dev/null +++ b/abs/mv-core/hobbitmon/hobbitstorage.py @@ -0,0 +1,121 @@ +#!/usr/bin/python +# import MySQL module + +import MySQLdb +import sys +import getopt +import socket +import os +import time +import string + +def LIVETV(): +    grandtotal=0 +    global rectv_total +    global rectv_time +    global livetv_total +    global livetv_time +    # create a cursor +    cursor = db.cursor() +    # execute SQL statement + +    cursor.execute("SELECT unix_timestamp(starttime),unix_timestamp(endtime),title FROM recorded where recgroup=(%s) ORDER by starttime;" , ("livetv")) +    result = cursor.fetchall() + +    for row in result: +      #  print row[0], row[1] ,row [2] +        start=row[0] +        end=row[1] +        if ( end  > start ): +            total = (end - start) /60 +            grandtotal+=total +    hours = grandtotal / 60.0 +    days = hours / 24.0 + +    livetv_total=len(result) +    livetv_time=hours + + + +def RECORDTV(): +    grandtotal=0 +    global rectv_total +    global rectv_time +    global livetv_total +    global livetv_time +    # create a cursor +    cursor = db.cursor() +    # execute SQL statement + +    cursor.execute("SELECT unix_timestamp(starttime),unix_timestamp(endtime),title FROM recorded where not recgroup=(%s) ORDER by starttime;" , ("livetv")) +    result = cursor.fetchall() + +    for row in result: +      #  print row[0], row[1] ,row [2] +        start=row[0] +        end=row[1] +        if ( end  > start ): +            total = (end - start) /60 +            grandtotal+=total +    hours = grandtotal / 60.0 +    days = hours / 24.0 + +    rectv_total=len(result) +    rectv_time=hours + + + +def printvars(): +    print rectv_time +    print rectv_total +    print livetv_time +    print livetv_total + +def sendTObb(): +    DATE = time.strftime("%a %b %d %H:%M:%S %Z %Y", time.localtime(time.time())) +    if os.environ['BB']: +        #print os.environ['BB'] +        BB=os.environ['BB'] +    if os.environ['BBDISP']: +        #print os.environ['BBDISP'] +        BBDISP=os.environ['BBDISP'] +    if os.environ['MACHINE']: +       # print os.environ['MACHINE'] +        MACHINE=os.environ['MACHINE'] + +  #  MACHINE = socket.gethostname() +  #  MACHINE = string.replace(MACHINE, '.', ',') +    INFOLINE= "\n rectv_total:" + str(rectv_total) +    INFOLINE= INFOLINE + "\n rectv_time:" + str(rectv_time) +    INFOLINE= INFOLINE + "\n livetv_total:" + str(livetv_total) +    INFOLINE= INFOLINE + "\n livetv_time:" + str(livetv_time) +    INFOLINE= INFOLINE + "\n " + + + +    LINE = "status " + MACHINE + ".storage green" + " " + DATE + " " + INFOLINE + +    cmd = BB + ' ' + BBDISP + ' "' + LINE + '"' +    os.system(cmd) +    #print LINE + +def main(argv): +    global db +    global rectv_total +    global rectv_time +    global livetv_total +    global livetv_time + +    rectv_total=0 +    rectv_time=0 +    livetv_total=0 +    livetv_time=0 + +    db = MySQLdb.connect(host="localhost", user="mythtv", passwd="mythtv", db="mythconverg") + +    LIVETV() +    RECORDTV() +    #printvars() +    sendTObb() +if __name__ == "__main__": +    main(sys.argv[1:]) diff --git a/abs/mv-core/hobbitmon/tuner.png b/abs/mv-core/hobbitmon/tuner.png Binary files differnew file mode 100644 index 0000000..e4ca198 --- /dev/null +++ b/abs/mv-core/hobbitmon/tuner.png diff --git a/abs/mv-core/hobbitmon/tv.png b/abs/mv-core/hobbitmon/tv.png Binary files differnew file mode 100644 index 0000000..9c4490c --- /dev/null +++ b/abs/mv-core/hobbitmon/tv.png  | 
