[xymon] os count with graph

Vernon Everett everett.vernon at gmail.com
Tue Sep 21 10:29:08 CEST 2010


Very elegant.
And something new for me. I have never used the "bbcmd bbhostshow" command.
It's a much better way of getting the complete contents of all the bb-hosts
with includes.
Every day is a schoolday. :-)

I would suggest one or two improvements though.
egrep '^[1-9][0-9]*\.' doesn't cater for my Wintel hosts which are defined
with IP address 0.0.0.0
We let Xymon use DNS for them, so I dropped the first [1-9].

bb localhost "clientlog {} section=osversion" only works for Wintel.
I changed it to the following
bb localhost "clientlog {} section=osversion,uname"
This will grab the relevant info for Wintel as well as Solaris.

I then need to modify the output for Solaris, because the uname string
includes the hostname.
I eventually ended up with this.
./server/bin/bbcmd bbhostshow | egrep '^[0-9]*\.' \
                              | awk '{print $2}' \
                              | sort -u \
                              | xargs -I{} ./server/bin/bb localhost
"clientlog {} section=osversion,uname" \
                              | grep -v "^\[" \
                              | awk ' $1 == "SunOS" { print $1" "$3" "$4};
$1 != "SunOS" {print} ' \
                              | sort \
                              | uniq -c

That last awk might need to be seriously adapted for other OS types, or
perhaps pipe the output to another similar awk.
(Also, for SunOS, $4 is the patch level. Hack that to print $1" "$3 for OS
version only)

I ended up with output that looked like this
  10 Microsoft  (build 7600)
   2 Microsoft Windows Server 2003 R2, Standard Edition Service Pack 2
(build 3790)
   6 Microsoft Windows Server 2008 , 64-bit Service Pack 2 (build 6002)
   1 SunOS 5.10 Generic_139556-08
   4 SunOS 5.10 Generic_141444-09
  90 SunOS 5.10 Generic_142900-03
Useful?
I have no idea.

And yes, I agree, temp files are bad. But unfortunately, a necessary evil
sometimes.

Cheers
     Vernon


On Tue, Sep 21, 2010 at 3:07 PM, David Baldwin <david.baldwin at ausport.gov.au
> wrote:

> All you need is this 'one liner' for the count of each version:
>
> bbcmd bbhostshow | egrep '^[1-9][0-9]*\.' | awk '{print $2}' | sort -u |
> xargs -I{} bb localhost "clientlog {} section=osversion" | sort | uniq
> -c | egrep -v '^[[:space:]]*[0-9]+( \[osversion\]|[[:space:]]*$)'
>
> Look! No temporary files! (Pet hate of mine ;)
>
> David.
> > How does a wget call compare to using the bb command?
> >
> > I replaced the wget with:
> >     $BBHOME/server/bin/bb localhost "clientlog $HOSTNAME
> > section=osversion" | grep -v osversion > $HOSTNAME
> >
> > and the OSVER with:
> >    OSVER=$(sed -e :a -e 's/<[^>]*>//g;/</N;//ba' $HOSTNAME)
> >
> >
> >
> > On Mon, Sep 20, 2010 at 9:33 AM, Vernon Everett
> > <everett.vernon at gmail.com <mailto:everett.vernon at gmail.com>> wrote:
> >
> >     Bugger!
> >     Was pretty busy today, and completely forgot.
> >
> >     Here's something that will help.
> >     #!/bin/ksh
> >     export BBHOME=/usr/lib/hobbit
> >     typeset -L20 HOST
> >     mkdir -p /usr/lib/hobbit/custom/data
> >     cd /usr/lib/hobbit/custom/data
> >     INCLUDES=$(grep ^include /etc/hobbit/bb-hosts | awk '{ print $2 }')
> >     cat /etc/hobbit/bb-hosts $INCLUDES | egrep -h -v
> >     "^#|^page|^$|^title|^subpage|^group|^include" | awk '{ print $2 }' \
> >        | sort | uniq \
> >        | while read HOSTNAME
> >          do
> >             wget -O $HOSTNAME -o /dev/null
> >
> http://hobbit/hobbit-cgi/bb-hostsvc.sh\?HOST\=$HOSTNAME\&SERVICE\=info<http://hobbit/hobbit-cgi/bb-hostsvc.sh%5C?HOST%5C=$HOSTNAME%5C&SERVICE%5C=info>
> >     <
> http://hobbit/hobbit-cgi/bb-hostsvc.sh%5C?HOST%5C=$HOSTNAME%5C&SERVICE%5C=info
> >
> >     &
> >          done
> >     wait
> >     for HOSTNAME in /usr/lib/hobbit/custom/data/*
> >     do
> >        OSVER=$(grep OS: $HOSTNAME | sed 's/OS://g'| sed -e :a -e
> >     's/<[^>]*>//g;/</N;//ba')
> >        HOST=$(basename $HOSTNAME)
> >        echo "$HOST    $OSVER"
> >     done
> >     rm /usr/lib/hobbit/custom/data/*
> >
> >     This will generate a list of hosts, and OS version.
> >     You want a list of number of OS versions, pipe the output to awk
> >     '{ print $2 }' | sort | uniq -c | awk '{ print $2":"$1}
> >     You can feed this back to Hobbit using bb, as a test and graph it.
> >
> >     I recommend you use stack graphs for more interesting looking graphs.
> >
> >     Let me know how you go.
> >
> >     Regards
> >          Vernon
> >
> >
> >
> >
> >     On Mon, Sep 20, 2010 at 8:25 PM, Martin Flemming
> >     <martin.flemming at desy.de <mailto:martin.flemming at desy.de>> wrote:
> >
> >
> >             Got some code stubs I can post later when I get to work.
> >
> >
> >         That's will be great :-)
> >
> >         thanks & cheers,
> >
> >           martin
> >
> >
> >         On Mon, 20 Sep 2010, Vernon Everett wrote:
> >
> >             Easy enough to knock together.
> >             Read it out of the server, then feed it back.
> >
> >             Got some code stubs I can post later when I get to work.
> >
> >             Cheers
> >                V
> >
> >
> >             On Sun, Sep 19, 2010 at 1:47 AM, Martin Flemming
> >             <martin.flemming at desy.de <mailto:martin.flemming at desy.de>>
> >             wrote:
> >
> >                  Hi !
> >
> >                  Got somebody an working script for counting OS of
> >             alle clients
> >                  ( RHEl3/4/5 Solaris .5.8/5.19./5.10 etc ..) with
> >             graphing .. ?
> >
> >                  I know some old threads about that request,
> >                  But hey didn't really work for me are without graphs
> >             .. :-(
> >
> >                  thanks & cheers,
> >
> >
> >                        Martin
> >
> >
> >                  To unsubscribe from the xymon list, send an e-mail to
> >                  xymon-unsubscribe at xymon.com
> >             <mailto:xymon-unsubscribe at xymon.com>
> >
> >
> >         To unsubscribe from the xymon list, send an e-mail to
> >         xymon-unsubscribe at xymon.com <mailto:xymon-unsubscribe at xymon.com>
> >
> >
> >
>
>
> --
> David Baldwin - IT Unit
> Australian Sports Commission          www.ausport.gov.au
> Tel 02 62147830 Fax 02 62141830       PO Box 176 Belconnen ACT 2616
> david.baldwin at ausport.gov.au          Leverrier Street Bruce ACT 2617
>
>
>
> -------------------------------------------------------------------------------------
> Keep up to date with what's happening in Australian sport visit
> http://www.ausport.gov.au
>
> This message is intended for the addressee named and may contain
> confidential and privileged information. If you are not the intended
> recipient please note that any form of distribution, copying or use of this
> communication or the information in it is strictly prohibited and may be
> unlawful. If you receive this message in error, please delete it and notify
> the sender.
>
> -------------------------------------------------------------------------------------
>
> To unsubscribe from the xymon list, send an e-mail to
> xymon-unsubscribe at xymon.com
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20100921/c7851d20/attachment.html>


More information about the Xymon mailing list