[Xymon] Monitoring iostat performance

Lists lists at benjamindsmith.com
Thu Jan 30 23:39:50 CET 2014


Thanks to everyone for your feedback!

Figured I'd give this a shot, but I can't seem to diagnose what's going 
on. There's no apparent change in our xymon install. We're running 4.3.7.

I've verified that both pl scripts are in the $xymonhome/server/ext/ 
directory on the server and $xymonhome/client/ext/ perl is installed, 
and the scripts are chown $xymonuser and chmod u+x.

I've edited the scripts to use our company name instead of stanwell. (do 
you have an errant graph?)

I'm assuming this would create an additional column on the overview 
page, or maybe an additional graph under trends.... See comments 
interspersed below, to document the process I went through for any other 
parties. (I'm using CentOS 6.5, all updates applied


-Ben

On 01/29/2014 05:36 PM, Ford, Alan wrote:
> Hi Ben,
> I have written a client program to capture the iostat details so that a backend process can display it.
> I do it this way as I have custom client scripts for RHEL and solaris 9 and the use the same backend :-)
>
> My client perl script works for RHEL 4, 5 and 6.
>
> Add this section to clientlaunch.cfg on your client.
>
> [fsio]
>          ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
>          CMD $XYMONCLIENTHOME/ext/xy-fsio_rhel.pl
>          LOGFILE $XYMONCLIENTHOME/logs/xymonclient.log
>          INTERVAL 5m

Also,
     a) cat xy-fsio_rhel.pl | sed -e s/stanwell.com/mycompany.com/g > 
$XYMONCLIENTHOME/client/ext/xy-fsio_rhel.pl
     b) dos2unix $XYMONCLIENTHOME/client/ext/xy-fsio_rhel.pl
     c) chown xymonclient.xymonclient $XYMONCLIENTHOME/client/ext/*
     d) chmod u+x $XYMONCLIENTHOME/client/ext/*
     e) /etc/sudoers:

xymonclient   ALL=NOPASSWD:/usr/sbin/lvdisplay
xymonclient   ALL=NOPASSWD:/sbin/partx

     f) edit xy-fsio_rhel.pl set these variable definitions:

$LVDISPLAY = "$SUDO /usr/sbin/lvdisplay -m 2>/dev/null";
$PARTX = "$SUDO /sbin/partx";


> On you Xymon server:
> Add this section to tasks.cfg
>
> # "rrddata" updates RRD files with information that arrives as "data" messages.
> [rrddata]
> 	ENVFILE /home/xymon/xymon/server/etc/xymonserver.cfg
> 	NEEDS xymond
> 	CMD xymond_channel --channel=data   --log=$XYMONSERVERLOGS/rrd-data.log xymond_rrd --rrddir=$XYMONVAR/rrd  \
>              --extra-script=/home/xymon/server/ext/process_fsio.pl \
>              --extra-tests=fsio

Note that there is already a section called "rrddata". Basically, add 
two lines to that section (don't forget the backslash at the end of the 
CMD line!) :
     --extra-script=/home/xymon/server/ext/process_fsio.pl \
     --extra-tests=fsio


Also, install the script:
     a) cat process_fsio.pl | sed -e s/stanwell.com/mycompany.com/g > 
$XYMONHOME/server/ext/process_fsio.pl
     b) dos2unix $XYMONHOME/client/ext/process_fsio.pl
     c) chown xymonclient.xymonclient $XYMONHOME/server/ext/*
     d) chmod u+x $XYMONHOME/server/ext/*

> Add this to graphs.cfg
>
> [fsio]
>        FNPATTERN ^fsio,(.*).rrd
>        TITLE Disk Read/Write
>        YAXIS Stats
>        DEF:pb at RRDIDX@=@RRDFN@:pbusy:AVERAGE
>        DEF:kr at RRDIDX@=@RRDFN@:kread_sec:AVERAGE
>        DEF:kw at RRDIDX@=@RRDFN@:kwrite_sec:AVERAGE
>        CDEF:pbn at RRDIDX@=pb at RRDIDX@,5,GT,pb at RRDIDX@,UNKN,IF
>        COMMENT:DISK IO\: @RRDPARAM@ \:
>        GPRINT:pbn at RRDIDX@:LAST:busy = %3.0lf%%\n
>        AREA:kr at RRDIDX@#@COLOR@:
>        GPRINT:kr at RRDIDX@:LAST:kB Read/sec \: %5.0lf (cur)
>        GPRINT:kr at RRDIDX@:MAX:\: %5.0lf (max)
>        GPRINT:kr at RRDIDX@:MIN:\: %5.0lf (min)
>        GPRINT:kr at RRDIDX@:AVERAGE:\: %5.0lf (avg)\n
>        AREA:kw at RRDIDX@#@COLOR@:
>        GPRINT:kw at RRDIDX@:LAST:kB Write/sec\: %5.0lf (cur)
>        GPRINT:kw at RRDIDX@:MAX:\: %5.0lf (max)
>        GPRINT:kw at RRDIDX@:MIN:\: %5.0lf (min)
>        GPRINT:kw at RRDIDX@:AVERAGE:\: %5.0lf (avg)\n
>
> [fsio2]
>        FNPATTERN ^fsio,(.*).rrd
>        TITLE I/O Utilization
>        YAXIS Stats
>        DEF:p at RRDIDX@B=@RRDFN@:pbusy:AVERAGE
>        DEF:p at RRDIDX@A=@RRDFN@:asvc_t:AVERAGE
>        DEF:p at RRDIDX@W=@RRDFN@:wsvc_t:AVERAGE
>        CDEF:p at RRDIDX@t=p at RRDIDX@B,5,GT,p at RRDIDX@B,UNKN,IF
>        COMMENT:DISK IO\: @RRDPARAM@ \:
>        GPRINT:p at RRDIDX@t:LAST:busy = %3.0lf%%\n
>        AREA:p at RRDIDX@A#@COLOR@:
>        GPRINT:p at RRDIDX@A:LAST:asvc_t  \: %5.1lf (cur)
>        GPRINT:p at RRDIDX@A:MAX: \: %5.1lf (max)
>        GPRINT:p at RRDIDX@A:MIN: \: %5.1lf (min)
>        GPRINT:p at RRDIDX@A:AVERAGE: \: %5.1lf (avg)\n
>        LINE1:p at RRDIDX@W#@COLOR@:
>        GPRINT:p at RRDIDX@W:LAST:wsvc_t  \: %5.1lf (cur)
>        GPRINT:p at RRDIDX@W:MAX: \: %5.1lf (max)
>        GPRINT:p at RRDIDX@W:MIN: \: %5.1lf (min)
>        GPRINT:p at RRDIDX@W:AVERAGE: \: %5.1lf (avg)\n
>

No changes so far...

>
> Add these in your xymonserver.cfg
>
> TEST2RRD="fsio,fsio2"
> GRAPHS="fsio::1,fsio::2"
>
>
> And away you go :-)

*Almost*! I get a graph under "trends" but for some reason the graph 
comes up with numbers all being blank or "nan". I'm setting this up on a 
nonproduction server, so I've tried generating some disk activity to 
make sure it's not a divide by zero error or something.

I wish my perl foo was a bit more up to snuff.





More information about the Xymon mailing list