[Xymon] WAN performance/monitoring

Adam Goryachev mailinglists at websitemanagers.com.au
Thu Jun 5 02:29:19 CEST 2014


Hi All,

First some background, then sharing some scripts I've written/used, and 
finally asking for some advice please.

Some time ago I was having a LAN issue (dropped packets) which I wrote a 
small script to measure, and quantify the problem. (If you can't see the 
problem, you can't fix it, and you can't prove it is fixed afterwards).

All the script did was use fping to ping a group of IP's once per 
second, then every minute it would record a log of the date/time plus 
one line for each IP that had one or more dropped packets. This worked 
nicely for the above purpose, allowing me to easily pinpoint the common 
machines experiencing the problem, and then eventually solve it.

Now I'd like to extend the script to cover my WAN connections, but I 
also need more information, and don't want to re-invent the wheel. So, 
I'm looking for suggestions on how to implement what I need, and/or 
other products that already do this.

Specifically, I now want to record at least the following data into 
RRD's for later viewing:
1) Maximum ping time per minute
2) Average ping time per minute
3) Minimum ping time per minute
4) Packet loss per minute

Now the first three could be done by using my script to calculate the 
value and then record those three values per minute, or I could record 
60 values per minute and let RRD do the calculation. One thing that does 
happen is obviously drift, ie, the processing time of my script will 
take a fraction of a second, so I won't really get a value for every 
single second, but then that is probably overkill anyway, if I can get 
one value for 99% of seconds, then I should get a clear picture of my 
links, performance, and any issues.

The second part of this question is what values for the above 4 things 
do you use for xymon as alarms? What is acceptable, what is marginal, 
and what is downright awful? In my case I'm using connections for RDP 
(Windows Remote Desktop).

BTW, currently the script doesn't actually integrate with xymon, that is 
still doing it's own standard network ping monitoring, but obviously 
this is a lot more intense/detailed, and I'd like to integrate the 
result (to get alerting/history/etc).

The current script I'm using which is started by /etc/rc.local at boot 
with "nohup /usr/local/bin/pingmon.sh >> /var/log/pingmon.log
#!/bin/bash
HOSTLIST="x.x.x.10
x.x.y.254
x.x.z.254"

HOSTLIST=$HOSTLIST
function doping
{
         START=`date '+%Y%m%d-%H:%M:%S'`
         result=`fping -C 60 -q ${HOSTLIST} 2>&1`
         echo "${result}" | grep -q -- - 2>&1 > /dev/null
         res=$?

         if [ $res == 0 ]
         then
                 echo -en "${START}\n${result}" | grep -- -
         else
                 echo "${START}"
         fi
}
while /bin/true
do
         doping >> /var/log/pingmon.log
done

I also wrote a report generator which was supposed to parse the log file 
and generate a summary/report in perl. I've attached that script here, 
but I can't claim that it is bug free, it also hard codes some business 
parameters (ie, business hours/days/etc), search for XXXX to find most 
things you will want to change.

Regards,
Adam

-- 
Adam Goryachev Website Managers www.websitemanagers.com.au
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pingmon_report.pl
Type: application/x-perl
Size: 3839 bytes
Desc: not available
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20140605/fa373edc/attachment.bin>


More information about the Xymon mailing list