Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bigpresh/bot-basicbot-pluggable-module-nagios

Report Nagios issues to IRC via a Bot::BasicBot::Pluggable IRC bot
https://github.com/bigpresh/bot-basicbot-pluggable-module-nagios

Last synced: about 1 month ago
JSON representation

Report Nagios issues to IRC via a Bot::BasicBot::Pluggable IRC bot

Awesome Lists containing this project

README

        

NAME

Bot::BasicBot::Pluggable::Module::Nagios - report Nagios alerts to IRC

DESCRIPTION

A module for IRC bots powered by Bot::BasicBot::Pluggable to monitor a
Nagios install and report alerts to IRC.

Multiple Nagios instances are supported; these could be separate Nagios
systems, or just the same Nagios install but using different
credentials. As each configured instance can have specific target
channels defined, this means you could have the bot check with the
username "development" and report all visible problems to the
#development channel, then check again with the "sysad" username and
report problems visible to that user to the #sysads channel.

Actual monitoring is done using Nagios::Scrape, which scrapes the
information from the status.cgi script which powers Nagios' web
interface. This means that, assuming your Nagios setup is configured to
be viewable over the web, you need no further setup to allow the bot to
monitor it.

SYNOPSIS

Load the module as you would any other Bot::BasicBot::Pluggable module,
then configure it to watch a Nagios install and report problems to the
desired channel(s) with the nagios add command.

In a direct message to the bot:

nagios add http://nagios.example.com/cgi-bin/status.cgi username password #channel
OK
nagios list
I'm currently monitoring the following Nagios instances:
.. 1 : http://example.com/cgi-bin/status.cgi as dave for #chan
nagios del 1
OK, deleted instance 1

(You can supply a list of channel names separated by commas, if you
want reports from a given instance to be announced to more than one
channel.)

TODO

Plenty of improvements are planned, including:

* Better documentation

I need to improve the module's documentation. For now, extra
information is available by saying to the bot on IRC,
or nagios set with no setting name for a list of valid settings with
descriptions.

I'd rather work out a good way to auto-generate documentation from
the settings definitions in the code in order to make sure the docs
stay in sync.

* Acknowledging problems

It should probably be possible to acknowledge a reported problem,
preventing repeated reports of the same service/host in the same
state.

* Configurable reporting hours

It would make sense to be able to configure the bot to only report
problems during hours in which staff/volunteers are likely to be
awake and paying attention to the IRC channel.

* Configurable report templates

It would be nice to be able to configure the format used for report
messages - perhaps including colour codes to colourise elements of
the message, where the channel allows it and users clients support
it.

AUTHOR

David Precious,

CONTRIBUTING

This module is developed on GitHub:

https://github.com/bigpresh/Bot-BasicBot-Pluggable-Module-Nagios

Pull requests / suggestions / bug reports are welcomed.

If you feel like it, even a "I'm using this and find it useful" mail to
[email protected] would be appreciated - it's nice to know when
people find your work useful.

(Reviews on cpanratings and/or ++'s on MetaCPAN are also very welcome.)

SUPPORT / BUGS / FEATURE REQUESTS

You can find documentation for this module with the perldoc command.

perldoc Bot::BasicBot::Pluggable::Module::Nagios

You can report bugs or make feature requests using GitHub Issues:

https://github.com/bigpresh/Bot-BasicBot-Pluggable-Module-Nagios/issues

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2011-2018 David Precious.

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.