Steto

Steto is a simple to check system status.

This first release can :

  • use Nagios plugin
  • define a check with a simple block
  • configure via an extensible DSL
  • run checks with several threads
  • report via several customizable Reporters

Sample


require 'steto'

Steto.config do
  # complete syntax
  check :load, Steto::NagiosCheck, :command => "/usr/lib/nagios/plugins/check_load", :options => { :warning => "1,0.5,0.5", :critical => "1,1,1"} 

  # shortcut for nagios
  nagios :disk_space, "check_disk", :warning => "10%"

  # make your helpers
  def ping(host)
    nagios "ping_#{host.split('.')[1]}", "check_ping", :hostname => host, :warning => "100,1%", :critical => "300,20%", :use_ipv4 => true
  end

  ping "www.google.com" 
  ping "stream.tryphon.eu"

  def process(name)
    nagios "process_#{name}", "check_procs", :critical => "1:", :command => name
  end

  process "apache2"
  process "icecast2"
  
  # check in one line
  check :if_link do
    `sudo /sbin/ethtool eth2` =~ /Link detected: yes/ ? :ok : :critical
  end

  # load external files
  Dir["/etc/steto/**/*.rb")].each { |f| load f }

  report Steto::LoggerReporter
  report Steto::BeepReporter
end

Steto.default_engine.check.report