NagiosHelper
Gem for writing, testing, executing Nagios checks inside Rails application. Checks running throught http or binary(nrpe).
gem 'nagios_helper'
$ rails generate nagios:check some
Check example:
app/nagios/some.rb
class Nagios::Some < Nagios::Check
params :x
def execute
count = User.count + x.to_i
warn "hmmm" if count < 10
crit "ouch" if count < 5
ok "good #{count}"
end
end
Run:
$ RAILS_ENV=production bundle exec nagios_check some x 1
Nagios Check Initilizers:
All files in app/nagios/initializers will auto loads.
Server:
Inside rails server
Create controller: app/controllers/nagios_controller.rb
class NagiosController < ApplicationController
http_basic_authenticate_with :name => "nagios", :password => "password"
def check
status, = Nagios::Runner.check(params)
render :text => "#{status}|#{}", :layout => false
end
end
$ curl http://nagios:password@localhost:3000/nagios/check?method=some&x=1
Outside rails server
With using nonblocking EM-server nagios_rails_server
AR connections should be configured with pool: 100.
$ RAILS_ENV=production bundle exec nagios_server
$ curl localhost:9292/check/some?x=1