[hobbit] [Hobbit/Xymon] PDF Reports

T.J. Yang tj_yang at hotmail.com
Wed Nov 12 18:16:11 CET 2008


Thanks for sharing the code of your modification.
I will need to parse "uname -a" section and have a hash or array to keep counting of os appearance... etc.
 
later
T.J. Yang> Date: Wed, 12 Nov 2008 07:34:06 -0500> From: michael.nemeth at lmco.com> To: hobbit at hswn.dk> Subject: Re: [hobbit] [Hobbit/Xymon] PDF Reports> > |I have a pet project to write a oscount hobbit server side module by > modifying> |Henrik's rootlogin perl script. The script is to display statistics of > OS types and their verions.> Maybe this will help you with your project> This is what to "parse " ps output on the server side to chech for > running back-up (save -s).> Watch out for line wraps> #!/usr/local/bin/perl> > #*----------------------------------------------------------------------------*/> #* Hobbit client message > processor. */> #* > */> #* This perl program shows how to create a server-side module using > the */> #* data sent by the Hobbit clients. This program is fed data from > the */> #* Hobbit "client" channel via the hobbitd_channel program; each > client */> #* message is processed by looking at the [who] section and > generates */> #* a "login" status that goes red when an active "root" login is > found. */> #* > */> #* Written 2007-Jan-28 by Henrik Storner > <henrik at hswn.dk> */> #* > */> #* This program is in the public domain, and may be used freely > for */> #* creating your own Hobbit server-side > modules. */> #* Henrik's script was modified by me, Mike Nemeth > Michael.nemeth at lmco.com */> #* the rootlogin.pl which parses the [who] section was changed to > parse */> #* the [ps] of client > data. */> #* Often Ive seen people ask how to monitor a certain proccess and > have */> #* a separted test/column for it This works for > me! */> #* > */> #*----------------------------------------------------------------------------*/> > # $Id: rootlogin.pl,v 1.1 2007/01/28 12:42:34 henrik Exp $> # look for back-ups running: save -s> > my $bb;> my $bbdisp;> my $hobbitcolumn = "bkup";> my $hostname = "";> my $msgtxt = "";> my %sections = ();> my $cursection = "";> > sub processmessage;> > > # Get the BB and BBDISP environment settings.> $bb = $ENV{"BB"} || die "BB not defined";> $bbdisp = $ENV{"BBDISP"} || die "BBDISP not defined";> > > # Main routine.> #> # This reads client messages from <STDIN>, looking for the> # delimiters that separate each message, and also looking for the> # section markers that delimit each part of the client message.> # When a message is complete, the processmessage() subroutine> # is invoked. $msgtxt contains the complete message, and the> # %sections hash contains the individual sections of the client> # message.> > while ($line = <STDIN>) {> if ($line =~ /^\@\@client\#/) {> # It's the start of a new client message - the header > looks like this:> # > @@client#830759/HOSTNAME|1169985951.340108|10.60.65.152|HOSTNAME|sunos|sunos> > # Grab the hostname field from the header> @hdrfields = split(/\|/, $line);> $hostname = $hdrfields[3];> > # Clear the variables we use to store the message in> $msgtxt = "";> %sections = ();> }> elsif ($line =~ /^\@\@/) {> # End of a message. Do something with it.> processmessage();> }> elsif ($line =~ /^\[(.+)\]/) {> # Start of new message section.> > $cursection = $1;> $sections{ $cursection } = "\n";> }> else {> # Add another line to the entire message text variable,> # and the the current section.> $msgtxt = $msgtxt . $line;> $sections{ $cursection } = $sections{ $cursection } . $line;> }> }> > > # This subroutine processes the client message. In this case,> # we watch the [ps] section of the client message and alert> # if our string is found: save -s meaning backs are active.> > > sub processmessage {> my $color;> my $summary;> my $statusmsg;> my $cmd;> my $cmdl;> > # Dont do anything unless we have the "ps" section> return unless ( $sections{"ps"} );> > # Is the string/process somewhere in the "ps" section?> # Note that we must match with /m because there are multiple> # lines in the [ps] section.> if ( ($cmdl) = $sections{"ps"} =~ /(save.+-s.*)/ ) {> $color = "yellow";> $summary = "There MAYBE active backups" ;> # $statusmsg = "&yellow " . $cmdl . $sections{"ps"};> # sendins out the entire ps section seam to cause some purples so just > send the match `, hey you've a proc column all ready.> $statusmsg = "&yellow " . $cmdl ;> }> else {> $color = "green";> $summary = "Ok";> $statusmsg = "&green No backup active\n\n";> }> # Build the command we use to send a status to the Hobbit daemon> $cmd = $bb . " " . $bbdisp . " \"status " . $hostname . "." . > $hobbitcolumn . " " . $color . " " . $summary . "\n\n"> . $statusmsg . "\"";> # And send the message> system $cmd;> }> > > > > T.J. Yang wrote:> >> >> > --------------------------------------------------> > From: "Martin Flemming" <martin.flemming at desy.de>> > Sent: Wednesday, November 12, 2008 4:14 AM> > To: <hobbit at hswn.dk>> > Subject: Re: [hobbit] [Hobbit/Xymon] PDF Reports> >> >>> >> Hi, Thomas ..> >>> >> i'm very interesting and other too, i think :-)> >> > Second that.> > you can post your script here, I will upload the script to svn > > repository.> >> > Or request an account from Henrik and upload the script yourself.> >> > I have a pet project to write a oscount hobbit server side module by > > modifying> > Henrik's rootlogin perl script. The script is to display statistics of > > OS types and their verions.> > This is useful for management to understand how many Solaris 2.5.1, > > 2.6 are still hanging around> > in a big IT environment.> >> >> > tj> >> >> .. the shire will be the right place ..> >>> >> cheers,> >> martin> >>> >> On Wed, 12 Nov 2008, Thomas Séglard wrote:> >>> >>> Hello,> >>>> >>> some months (year ?) ago, I wrote a few php/shell code lines to > >>> generate> >>> on-demand/automatised PDF reports with the help of the RRD data > >>> produced by> >>> Hobbit. At the time of coding, I've used 'libfpdf' but it's a pain > >>> to include> >>> PNG with alpha-channel.> >>>> >>> I'm now in charge of a new platform and I setup Hobbit to monitor > >>> everything,> >>> of course :) Besides, I discovered the library 'tcpdf' which is very > >>> good and> >>> efficient. So, I decided to bring back my reports and have them to > >>> work with> >>> 'tcpdf'. Modifications were easy since 'tcpdf' is based on 'libfpdf' > >>> and now> >>> everything works again :) But this time, I really want to share this > >>> work> >>> with you on the Shire or whatever. I need to know if some of you are> >>> interested by these reports... Thus, just let me know.> >>>> >>> Best regards,> >>>> >>> ThomaS> >>>> >>> To unsubscribe from the hobbit list, send an e-mail to> >>> hobbit-unsubscribe at hswn.dk> >>>> >>>> >>>> >>>> >>> >> >> >> >> To unsubscribe from the hobbit list, send an e-mail to> >> hobbit-unsubscribe at hswn.dk> >>> >> > To unsubscribe from the hobbit list, send an e-mail to> > hobbit-unsubscribe at hswn.dk> >> >> >> > > To unsubscribe from the hobbit list, send an e-mail to> hobbit-unsubscribe at hswn.dk> > 
_________________________________________________________________
Windows Live Hotmail now works up to 70% faster.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20081112/2e7ae3fd/attachment.html>


More information about the Xymon mailing list