From: Ginther, D. M <dem...@bo...> - 2005-03-09 20:12:13
|
#!/usr/bin/perl -w # notify_by_rss.pl # notification script for Nagios # Written by Demian Ginther, 2005 # Please reuse or modify but leave this text in the header. use strict; use XML::RSS; my $notification_type=3D$ARGV[0]; my $host=3D$ARGV[1]; my $hostaddress=3D$ARGV[2]; my $state=3D$ARGV[3]; my $info=3D$ARGV[4]; my $service=3D$ARGV[5]; my $rss =3D new XML::RSS (version =3D> '0.91', encoding =3D> = 'ISO-8859-1'); $rss->parsefile("/Library/WebServer/Documents/rss/nagios.rdf"); pop(@{$rss->{'items'}}) if (@{$rss->{'items'}} =3D=3D 15); $rss->add_item( title =3D> "** Nagios ** -$notification_type- $host at $hostaddress:$state", link =3D> "http://kiki.bsvspdc1.bna.boeing.com/nagios/cgi-bin/status.cgi?host=3D$ho= s t", mode =3D> 'insert' ); $rss->save("/Library/WebServer/Documents/rss/nagios.rdf"); ___________________________________ I didn't use all the info, and obviously with a few if/then statements you could make the link go straight to the service affected, etc. Also, you can use the XML::RSS module to create the .rdf file to begin with. This script just adds to the existing file. I'm running nagios and this script on Mac OS X server. Hope you find it useful. Demian -----Original Message----- From: Ginther, Demian M=20 Sent: Wednesday, March 09, 2005 11:28 AM To: nag...@li... Subject: RE: [Nagios-users] Alert suggestion: RSS This is pretty much the same as mine except I used perl and a perl module called XML::RSS to do the work. I'll post it after I eat lunch. -----Original Message----- From: bri...@hi... [mailto:bri...@hi...]=20 Sent: Monday, March 07, 2005 7:03 PM To: nag...@li... Subject: RE: [Nagios-users] Alert suggestion: RSS Quoting "Ginther, Demian M" <dem...@bo...>: looks like 3 of us have been hacking and came up with 3 different kind of solutions! viva tmtowtdi! my hack: miscommands.cfg define command{ command_name notify-by-rss command_line /usr/local/nagios/libexec/notify-by-rss.sh "$NOTIFICATIONTYPE$" "$SERVICEDESC$" "$HOSTALIAS$" "$HOSTADDRESS$" "$SERVICESTATE$" "$DATETIME$" "$OUTPUT$" } the script: #!/bin/sh RSSFILE=3D"/var/www/html/rss.xml" DESC=3D"alerts for NAGURL=3D"http://whatever" NOTIFICATIONTYPE=3D$1 SERVICEDESC=3D$2 HOSTALIAS=3D$3 HOSTADDRESS=3D$4 SERVICESTATE=3D$5 DATETIME=3D$6 OUTPUT=3D$7- echo "<?xml version=3D'1.0' encoding=3D'utf-8' ?>" >$RSSFILE echo "<rss version=3D'2.0'>" >>$RSSFILE echo "<channel>" >>$RSSFILE echo "<title>nagios alert</title>" >>$RSSFILE echo "<link>$NAGURL</link>" >>$RSSFILE echo "<description>$DESC</description>" >>$RSSFILE echo "<lastBuildDate>$DATETIME</lastBuildDate>" >>$RSSFILE echo "<generator>nagios notify script</generator>" >>$RSSFILE echo "<item>" >>$RSSFILE echo "<guid isPermaLink=3D'true'>$NAGURL</guid>" >>$RSSFILE echo "<pubDate>$DATETIME</pubDate>" >>$RSSFILE echo "<title>$NOTIFICATIONTYPE alert on $HOSTALIAS for service $SERVICEDESC</title>" >>$RSSFILE echo "<description>" >>$RSSFILE echo -e "\nNotification Type: $NOTIFICATIONTYPE\nService: $SERVICEDESC\nHost: $HOSTALIAS\nAddress: $HOSTADDRESS\nState: $SERVICESTATE\nDate/Time: $DATETIME\nAdditional Info:\n$OUTPUT" >>$RSSFILE echo "</description>" >>$RSSFILE echo "</item>" >>$RSSFILE echo "</channel></rss>" >>$RSSFILE exit 0 Obviously it'll only report the latest alert, not the best solution. Had to niggle with group ownerships (added nagios to apache group, chmod g+w the write directory) blah someone write a complete clean solution :) brian > I started hacking around with this today... I modified the > misccommands.cfg file to have two new methods, notify-by-RSS and > host-notify-by-RSS which call a perl script which uses XML:RSS to write > to a .rdf file. > > Works pretty well, if anyone's interested, let me know and I can put it > up somewhere. > > Demian > > -----Original Message----- > From: Jeff McCombs [mailto:je...@ni...] > Sent: Monday, March 07, 2005 3:58 PM > To: nag...@li... > Subject: Re: [Nagios-users] Alert suggestion: RSS > > Peeps, > > OK, so I've been hacking on this just to see, thinking that an RSS feed > might be pretty useful.. > > And what I've come up with isn't pretty, to say the least. It's slow.. > But > for those of you who want to hack on this, maybe improve it, go for > it... > > This little _PHP_ app parses the nagios.log file, and reports on all > services that are _not_ in a status of UP or OK. I'm sure there's a perl > module out there that can do it, but for some reason, I can't write perl > to > save my life. :) > > Tack on ?oktoo=3Dtrue to the URL, and it'll report on all services = (not > recommended, we have over 800 services, which means we have over 800 RSS > items, and that's a horrible thing to do to your reader!) > > Edit the config.php file and set the following: > > $nagios['status_file'] > This needs to be the full path to the status.log file Nagios > spits > out (e.g. /usr/local/nagios/var/status.log) > > $nagios['myurl'] > This is the full http:// address to the nagios web interface. > e.g. http://nagios.mydomain.com/nagios/ > > $nagios['statcgi'] > This is the full http:// address to the nagios status.cgi script > e.g. http://nagios.mydomain.com/nagios/cgi-bin/status.cgi > > $nagios['extinfo] > This is the full http:// address to the nagios extinfo.cgi > script > e.g. http://nagios.mydomain.com/nagios/cgi-bin/extinfo.cgi > > Just drop this into the Nagios cgi-bin/ directory. Note this is a giant, > ugly HACK that I put together, no warranties express or implied, blah > blah > blah, may break systems, cause floods and other major disasters, blah > blah.. > No support, you know the drill. > > Hack it up as needed. It ought to give someone a start at least... > Oh, > and I wrote this to work with 1.2, not 2.x, since I don't have a 2.x > status > file to work with. Sorry, no support for DB's, though it could be done > (and > would probably be faster). > > -Jeff > > > > > > From: <bri...@hi...> > > Date: Mon, 7 Mar 2005 14:32:31 -0500 > > To: <nag...@li...> > > Subject: Re: [Nagios-users] Alert suggestion: RSS > > > > Quoting Marcel Smeets <mpg...@gm...>: > > > >> Mmm, the second time someone tells it is simple to make a > notification > >> script for this. Well how?? > > > > I already have something working, sorta, after just working on it a > little bit > > here and there today. I'll let the world know when I have something I > think is > > decent enough to use beyond my own machines. > > > > b > > > >> > >> > >> On Mon, 7 Mar 2005 15:57:37 +0000, Mike Simkins > <mik...@gm...> > >> wrote: > >>> I have seen something like this for files, should be a simple job to > >>> write one, I would personally find it useful.. > >>> > >>> On Mon, 7 Mar 2005 10:07:49 -0500, bri...@hi... > >>> <bri...@hi...> wrote: > >>>> Quoting Andreas Ericsson <ae...@op...>: > >>>> > >>>>> bri...@hi... wrote: > >>>>>> I looked around and I didn't see it mentioned anywhere but RSS as > a > >>>>> reporting > >>>>>> mechanism might be sorta useful. When I am on my laptop at home I > >> often > >>>>> don't > >>>>>> have a browser window with nagios open or a mail client open but > I'll > >> have > >>>>> an > >>>>>> RSS client going. Maybe I am the only one and it'll never get > used > >> though > >>>>> ... > >>>>>> just an idea. I'd "write a patch" if I thought I could, btw. > >>>>>> > >>>>> > >>>>> You don't have to write a patch. Just a notification script. It > should > >>>>> be fairly simple, really. > >>>> > >>>> oh really? I honestly didn't look into notification stuff, the > plugin API > >> is > >>>> simple as hell though, I'll have a go at this when I have some free > time > >> this > >>>> week. > >>>> > >>>> thanks for the info. > >>>> brian > >>>> > >>>> > >>>> ------------------------------------------------------- > >>>> SF email is sponsored by - The IT Product Guide > >>>> Read honest & candid reviews on hundreds of IT Products from real > users. > >>>> Discover which products truly live up to the hype. Start reading > now. > >>>> http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick > >>>> _______________________________________________ > >>>> Nagios-users mailing list > >>>> Nag...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/nagios-users > >>>> ::: Please include Nagios version, plugin version (-v) and OS when > >> reporting any issue. > >>>> ::: Messages without supporting info will risk being sent to > /dev/null > >>>> > >>> > >>> ------------------------------------------------------- > >>> SF email is sponsored by - The IT Product Guide > >>> Read honest & candid reviews on hundreds of IT Products from real > users. > >>> Discover which products truly live up to the hype. Start reading > now. > >>> http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick > >>> _______________________________________________ > >>> Nagios-users mailing list > >>> Nag...@li... > >>> https://lists.sourceforge.net/lists/listinfo/nagios-users > >>> ::: Please include Nagios version, plugin version (-v) and OS when > >> reporting any issue. > >>> ::: Messages without supporting info will risk being sent to > /dev/null > >>> > >> > >> > >> ------------------------------------------------------- > >> SF email is sponsored by - The IT Product Guide > >> Read honest & candid reviews on hundreds of IT Products from real > users. > >> Discover which products truly live up to the hype. Start reading now. > >> http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick > >> _______________________________________________ > >> Nagios-users mailing list > >> Nag...@li... > >> https://lists.sourceforge.net/lists/listinfo/nagios-users > >> ::: Please include Nagios version, plugin version (-v) and OS when > reporting > >> any issue. > >> ::: Messages without supporting info will risk being sent to > /dev/null > >> > > > > > > > > > > > > > > ------------------------------------------------------- > > SF email is sponsored by - The IT Product Guide > > Read honest & candid reviews on hundreds of IT Products from real > users. > > Discover which products truly live up to the hype. Start reading now. > > http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick > > _______________________________________________ > > Nagios-users mailing list > > Nag...@li... > > https://lists.sourceforge.net/lists/listinfo/nagios-users > > ::: Please include Nagios version, plugin version (-v) and OS when > reporting > > any issue. > > ::: Messages without supporting info will risk being sent to /dev/null > > > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dcick > _______________________________________________ > Nagios-users mailing list > Nag...@li... > https://lists.sourceforge.net/lists/listinfo/nagios-users > ::: Please include Nagios version, plugin version (-v) and OS when reporting > any issue. > ::: Messages without supporting info will risk being sent to /dev/null > ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick _______________________________________________ Nagios-users mailing list Nag...@li... https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.=20 ::: Messages without supporting info will risk being sent to /dev/null ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Nagios-users mailing list Nag...@li... https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.=20 ::: Messages without supporting info will risk being sent to /dev/null |