Xymon Mailing List Archive search

creating a report of all the notifications sent by hobbit

16 messages in this thread

list Tom Georgoulias · Tue, 06 Feb 2007 11:45:07 -0500 ·
Is there a way to use the hobbit cgi scripts to generate a report 
listing all of the notifications sent by Hobbit (i.e. from 
log/notifications.log) for a specific time frame?
-- 
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Greg L Hubbard · Tue, 6 Feb 2007 12:03:23 -0600 ·
I bet you could write one in short order by using one of the existing
CGI's as a framework. 

-----Original Message-----
From: Tom Georgoulias [mailto:user-6a0b8b0f0ae1@xymon.invalid] 
Sent: Tuesday, February 06, 2007 10:45 AM
To: hobbit mailing list
Subject: [hobbit] creating a report of all the notifications sent by
hobbit
quoted from Tom Georgoulias

Is there a way to use the hobbit cgi scripts to generate a report
listing all of the notifications sent by Hobbit (i.e. from
log/notifications.log) for a specific time frame?
--
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Tom Georgoulias · Tue, 06 Feb 2007 15:02:51 -0500 ·
quoted from Greg L Hubbard
Hubbard, Greg L wrote:
I bet you could write one in short order by using one of the existing
CGI's as a framework. 
Thought about using bb-eventlog.c, but I don't know much about C 
programming.  I'll try and give it a shot anyway--can't hurt.
-- 
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Greg L Hubbard · Tue, 6 Feb 2007 15:34:19 -0600 ·
I think all you need is a Perl script to prompt for the start time, then
have it read the notification log, skipping everything that is older
than the entered time.  You will have to parse each notification entry
for the notification time, convert it to an internal format, and then
compare to the time you get from the form.

You might be able to do it in shell, but I am not sure what could be
used to convert times into something that can be compared.

GLH
quoted from Tom Georgoulias

-----Original Message-----
From: Tom Georgoulias [mailto:user-6a0b8b0f0ae1@xymon.invalid] 
Sent: Tuesday, February 06, 2007 2:03 PM
To: user-ae9b8668bcde@xymon.invalid
Subject: Re: [hobbit] creating a report of all the notifications sent by
hobbit

Hubbard, Greg L wrote:
I bet you could write one in short order by using one of the existing 
CGI's as a framework.
Thought about using bb-eventlog.c, but I don't know much about C
programming.  I'll try and give it a shot anyway--can't hurt.
--
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Ralph Mitchell · Tue, 6 Feb 2007 15:41:15 -0600 ·
quoted from Greg L Hubbard
On 2/6/07, Hubbard, Greg L <user-d970b5e56ec9@xymon.invalid> wrote:
I think all you need is a Perl script to prompt for the start time, then
have it read the notification log, skipping everything that is older
than the entered time.  You will have to parse each notification entry
for the notification time, convert it to an internal format, and then
compare to the time you get from the form.

You might be able to do it in shell, but I am not sure what could be
used to convert times into something that can be compared.
If you're on a system with the GNU 'date' program, you can feed it a
date and use the format string to get seconds-since-the-epoch:

e.g.   date +%s  --date="2/6/2007 14:00"

give you:     1170792000

Then you can do math on that using expr.

I'm using that for tracking SSL cert expiry.

Ralph Mitchell
list Henrik Størner · Tue, 6 Feb 2007 22:46:58 +0100 ·
quoted from Tom Georgoulias
On Tue, Feb 06, 2007 at 03:02:51PM -0500, Tom Georgoulias wrote:
Hubbard, Greg L wrote:
I bet you could write one in short order by using one of the existing
CGI's as a framework. 
Thought about using bb-eventlog.c, but I don't know much about C 
programming.  I'll try and give it a shot anyway--can't hurt.
For a simpler approach, how about just scripting something that shows
the "notifications.log" file nicely on a HTML page ?

The notifications log is fairly simple: Entries look like this:

Thu Jan 11 18:17:52 2007 fenris.hswn.dk.cpu (172.16.10.254) user-ce4a2c883f75@xymon.invalid[121] 1168535872 200

Most fields are obvious; the "[121]" after the mail address is the
linenumber in hobbit-alerts.cfg that triggered this alert. "1168535872"
is the timestamp in Unix epoch form, same as what is on the start of the
line. "200" is the numeric service identifier, here it's for the "cpu"
status.

For the Hobbit "look", you can feed the content through bb-webpage.


So a quick hack would be:

#!/bin/sh
(echo "<table summary=Notifications border=1>"
 echo "<tr><th align=left>Time</th><th align=left>Host.service</th><th align=left>Recipient</th></tr>"

 cat /var/log/hobbit/notifications.log |
 while read L
 do
    set $L

    echo "<tr>"
    echo "<td>$1&nbsp;$2&nbsp;$3&nbsp;$4&nbsp;$5</td>"
    echo "<td>$6</td>"
    echo "<td>$8</td>"
    echo "</tr>"
 done

 echo "</table>") | bbcmd bb-webpage
exit 0


Regards,
Henrik
list Greg L Hubbard · Tue, 6 Feb 2007 16:17:59 -0600 ·
I knew it would be easy, but he wanted to be able to specify a time and
have it display all the entries that were NEWER (or maybe older), so
that it where it gets harder.  Are there any shell shortcuts for data
comparisons?  I haven't gotten the trusty "UNIX in a Nutshell" out
yet...

GLH 
quoted from Henrik Størner

-----Original Message-----
From: Henrik Stoerner [mailto:user-ce4a2c883f75@xymon.invalid] 
Sent: Tuesday, February 06, 2007 3:47 PM
To: user-ae9b8668bcde@xymon.invalid
Subject: Re: [hobbit] creating a report of all the notifications sent by
hobbit

On Tue, Feb 06, 2007 at 03:02:51PM -0500, Tom Georgoulias wrote:
Hubbard, Greg L wrote:
I bet you could write one in short order by using one of the existing
CGI's as a framework.
Thought about using bb-eventlog.c, but I don't know much about C 
programming.  I'll try and give it a shot anyway--can't hurt.
For a simpler approach, how about just scripting something that shows
the "notifications.log" file nicely on a HTML page ?

The notifications log is fairly simple: Entries look like this:

Thu Jan 11 18:17:52 2007 fenris.hswn.dk.cpu (172.16.10.254)
user-ce4a2c883f75@xymon.invalid[121] 1168535872 200

Most fields are obvious; the "[121]" after the mail address is the
linenumber in hobbit-alerts.cfg that triggered this alert. "1168535872"
is the timestamp in Unix epoch form, same as what is on the start of the
line. "200" is the numeric service identifier, here it's for the "cpu"
status.

For the Hobbit "look", you can feed the content through bb-webpage.


So a quick hack would be:

#!/bin/sh
(echo "<table summary=Notifications border=1>"
 echo "<tr><th align=left>Time</th><th align=left>Host.service</th><th
align=left>Recipient</th></tr>"

 cat /var/log/hobbit/notifications.log |  while read L  do
    set $L

    echo "<tr>"
    echo "<td>$1&nbsp;$2&nbsp;$3&nbsp;$4&nbsp;$5</td>"
    echo "<td>$6</td>"
    echo "<td>$8</td>"
    echo "</tr>"
 done

 echo "</table>") | bbcmd bb-webpage
exit 0


Regards,
Henrik
list Henrik Størner · Wed, 7 Feb 2007 07:51:59 +0100 ·
quoted from Greg L Hubbard
On Tue, Feb 06, 2007 at 04:17:59PM -0600, Hubbard, Greg L wrote:
I knew it would be easy, but he wanted to be able to specify a time and
have it display all the entries that were NEWER (or maybe older), so
that it where it gets harder.  Are there any shell shortcuts for data
comparisons?  I haven't gotten the trusty "UNIX in a Nutshell" out
yet...
The 9th field is the Unix timestamp of the notification, so it would
be trivial to compare that against a cut-off timestamp. Remember: The
logfiles are BB compatible, and BB used shell scripts for most of its
work. E.g.

#!/bin/sh

# Invoked as CGI with http://www/cgi-bin/notifylog.sh?12345&67890
# The numbers are the unix timestamps for beginning and end time
# of the report, can be generated with GNU date using "+%s" format.
#
# NOTE: It is horribly insecure to blindly use $QUERY_STRING in
#       shell scripts! This is ONLY for demonstration purposes!

STARTTIME="`echo $QUERY_STRING | cut -d'&' -f1`"
ENDTIME="`echo $QUERY_STRING | cut -d'&' -f2`"
quoted from Greg L Hubbard

(echo "<table summary=Notifications border=1>"
 echo "<tr><th align=left>Time</th><th align=left>Host.service</th><th
align=left>Recipient</th></tr>"

 cat /var/log/hobbit/notifications.log |  while read L  do
    set $L

    if test $9 -ge "$STARTTIME" -a $9 -lt "$ENDTIME"
    then
       echo "<tr>"
       echo "<td>$1&nbsp;$2&nbsp;$3&nbsp;$4&nbsp;$5</td>"
       echo "<td>$6</td>"
       echo "<td>$8</td>"
       echo "</tr>"
    fi
 done

 echo "</table>") | bbcmd bb-webpage
exit 0


Henrik
list Stefan Freisler · Wed, 7 Feb 2007 08:14:43 +0100 ·
Hi,
i think i could integrade it in my admin_scripts. Which licenc is this 
code?
(I will not made it twice)

thx
Stefan
aspect online AG
Beim Glaspalast 1
86153 Augsburg

Fon: +49(0)821-247 47 085

user-75055581652a@xymon.invalid
www.aspect-online.de

Amtsgericht Augsburg
HRB 20 24
Ust-ID: DE204754384
Genehmigung §34c Gewerbeordnung: Landratsamt Augsburg

Vorstand: Reinhold Berger, Helmut Paesler, Wolfgang Schütz
Aufsichtsratsvorsitzender: Stephan Gabriel
list Henrik Størner · Wed, 7 Feb 2007 11:31:35 +0100 ·
quoted from Stefan Freisler
On Wed, Feb 07, 2007 at 08:14:43AM +0100, user-75055581652a@xymon.invalid wrote:
i think i could integrade it in my admin_scripts. Which licenc is this 
code?
(I will not made it twice)
I normally don't copyright such simple scripts, so you can regard as
being in the public domain.


Regards,
Henrik
list Tom Georgoulias · Wed, 07 Feb 2007 10:03:31 -0500 ·
quoted from Henrik Størner
Henrik Stoerner wrote:
On Tue, Feb 06, 2007 at 04:17:59PM -0600, Hubbard, Greg L wrote:
I knew it would be easy, but he wanted to be able to specify a time and
have it display all the entries that were NEWER (or maybe older), so
that it where it gets harder.  Are there any shell shortcuts for data
comparisons?  I haven't gotten the trusty "UNIX in a Nutshell" out
yet...
The 9th field is the Unix timestamp of the notification, so it would
be trivial to compare that against a cut-off timestamp. Remember: The
logfiles are BB compatible, and BB used shell scripts for most of its
work. E.g.
Henrik, thanks for the example shell script in your previous message. I've already got that configured on my server and round one is over, which was simply to get the data into an area where a non-Tom can see it.  ;)

I would still like to have a Hobbit option where our staff can search through the notification logs in the same way we can search the events.

As for modifying the bb-eventlog.c approach, I actually spent about an hour working on it and it appears that I would have to modify/create many other files to have full access to all of the notification data I'd need.  To make a bb-notifylog cgi, I think I'd have to create code in hobbitd/lib/notification.c/h, add a chunk of html to hobbitd/web/event_form, create hobbitd/bb-notifylog.c, sh, sh.DIST, etc., and all of the necessary Makefile and menu_items.js changes. Unless I'm missing the obvious, it's not the most straightforward task.

Tom

-- 
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Henrik Størner · Wed, 7 Feb 2007 18:56:25 +0100 ·
quoted from Tom Georgoulias
On Wed, Feb 07, 2007 at 10:03:31AM -0500, Tom Georgoulias wrote:
I would still like to have a Hobbit option where our staff can search through the notification logs in the same way we can search the events.

As for modifying the bb-eventlog.c approach, I actually spent about an hour working on it and it appears that I would have to modify/create many other files to have full access to all of the notification data I'd need.  To make a bb-notifylog cgi, I think I'd have to create code in hobbitd/lib/notification.c/h, add a chunk of html to hobbitd/web/event_form, create hobbitd/bb-notifylog.c, sh, sh.DIST, etc., and all of the necessary Makefile and menu_items.js changes. Unless I'm missing the obvious, it's not the most straightforward task.
I guess having worked with the code previously does have some
advantages.

You're right about several things having to be modified. But don't
worry, I already did it and there's a notification log CGI in the
snapshot - mostly cut-and-pasted from the current event log view,
so you have the same filtering mechanisms.

Grab it from http://www.hswn.dk/beta/

If you'd rather not jeopardize your current setup, just run "make" and
then copy these by hand:
  - web/hobbit-notifylog.cgi to ~hobbit/server/bin/
  - web/hobbit-notifylog.sh to ~hobbit/cgi-bin/
  - hobbitd/webfiles/notify* to ~hobbit/server/web/
and update the ~hobbit/data/www/menu/menu_items.js file with the new
entry for the notification log (see hobbitd/wwwfiles/menu/menu_items.js).


Regards,
Henrik
list Tom Georgoulias · Wed, 07 Feb 2007 13:32:16 -0500 ·
quoted from Henrik Størner
Henrik Stoerner wrote:
On Wed, Feb 07, 2007 at 10:03:31AM -0500, Tom Georgoulias wrote:
I would still like to have a Hobbit option where our staff can search through the notification logs in the same way we can search the events.
You're right about several things having to be modified. But don't
worry, I already did it and there's a notification log CGI in the
snapshot - mostly cut-and-pasted from the current event log view,
so you have the same filtering mechanisms.

Grab it from http://www.hswn.dk/beta/
Wow, thanks a lot!  Got it on my 4.2.0 server and it works really well.   I really hate to bite the hand that feeds, but one thing I know we could benefit from is the ability to search on a specific recipient email address.  That way we can easily see which servers/test alerts were sent to our developers, how many times the customer support folks were notified, etc.
-- 
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid
list Stefan Freisler · Wed, 7 Feb 2007 22:50:27 +0100 ·
Hi,
i will public a new version of my adminscripts on friday with this function. (Filter Server, Test, Time, Recipient) If you want i can send you an preview tomorrw. 
cu
Stefan
list Henrik Størner · Wed, 7 Feb 2007 22:52:38 +0100 ·
quoted from Tom Georgoulias
On Wed, Feb 07, 2007 at 01:32:16PM -0500, Tom Georgoulias wrote:
Henrik Stoerner wrote:
On Wed, Feb 07, 2007 at 10:03:31AM -0500, Tom Georgoulias wrote:
I would still like to have a Hobbit option where our staff can search >>through the notification logs in the same way we can search the events.
You're right about several things having to be modified. But don't
worry, I already did it and there's a notification log CGI in the
snapshot - mostly cut-and-pasted from the current event log view,
so you have the same filtering mechanisms.

Grab it from http://www.hswn.dk/beta/
Wow, thanks a lot!  Got it on my 4.2.0 server and it works really well.  I really hate to bite the hand that feeds, but one thing I know we could benefit from is the ability to search on a specific recipient email address.
No problem, I just added it.


Henrik
list Tom Georgoulias · Thu, 08 Feb 2007 08:14:50 -0500 ·
quoted from Henrik Størner
Henrik Stoerner wrote:
 I know we 
could benefit from is the ability to search on a specific recipient 
email address.
No problem, I just added it.
Works well.  Thank you very much for that feature.
-- 
Tom Georgoulias
Systems Engineer
McClatchy Interactive
user-6a0b8b0f0ae1@xymon.invalid