Skip to content

A very simple tool to assist with creating custom nagios probes in Ruby

License

Notifications You must be signed in to change notification settings

hobodave/nagios-probe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nagios-probe

Provides an easy to use API for generating custom probes and communicating probe success/failure to Nagios.

Installation

# gem install nagios-probe

Usage

Simply create a subclass of Nagios::Probe and define the following methods:

  • check_crit

  • check_warn

  • check_ok (optional*)

  • crit_message

  • warn_message

  • ok_message

*check_ok is defined in the base class to always return true.

class MyProbe < Nagios::Probe
  def check_crit
    true
  end

  def check_warn
    false
  end

  def crit_message
    "Things are bad"
  end

  def warn_message
    "Things aren't going well"
  end

  def ok_message
    "Nothing to see here"
  end
end

To use your probe you must wrap it in a begin/rescue block to catch any exceptions and accurately report the status to Nagios.

begin
  options = {} # Nagios::Probe constructor accepts a single optional param that is assigned to @opts
  probe = MyProbe.new(options)
  probe.run
rescue Exception => e
  puts "Unknown: " + e
  exit Nagios::UNKNOWN
end

puts probe.message
exit probe.retval

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2009-2010 David Abdemoulaie. See LICENSE for details.

About

A very simple tool to assist with creating custom nagios probes in Ruby

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages