サーバーの生き死にを監視するツールをRubyで書いてみました。一応、L3層とL7層の監視ができます。

#!/usr/local/bin/ruby
require 'ping'
require 'net/smtp'
require 'net/http'

unless Ping.pingecho("www.server.com", 3, "80")
  Net::SMTP.start('mail.server.com', 25) {|s| s.send_mail "Subject:Server Down!!(L3)", 'kanshi-24@mail.server.com', 'oishi@example.com'}
end

begin
  Net::HTTP.start("www.server.com")
rescue
  Net::SMTP.start('mail.server.com', 25) {|s| s.send_mail "Subject:Server Down!!(L7)", 'kanshi-24@mail.server.com', 'oishi@example.com'}
end