RubyでHTTPヘルスチェックプログラムをつくる(mechanizeとnet/smtpを使用する)
RubyでHTTPアクセスが正常にできるかどうかを確認するツールを作成しました。
対象のURLにアクセスし、titleの文字列で正常にページアクセスできるかどうか確認しています。
エラー時は指定したメールアドレスにメールをとばすようになっています。
以下にソースコードを記載します。
※下線部は適宜環境にあわせてください
Windows環境でおこないました。
デバッグモードで実行するといくつか警告がでてますね。なんでだろ?
とりあえず動作はします。
【事前準備】
gemsでmechanizeをインストールする
> gem install mechanize
【ソースコード】
#!/usr/bin/ruby
require 'mechanize'
require 'net/smtp'
require 'kconv'
url = "http://localhost/"
wait_time = 15
@from_address = "from@mail_domain"
@send_address = "send@mail_domain"
agent = WWW::Mechanize.new
def send_alert( msg )
body = [ "Subject: HTTP Access Error\n", "\n", msg ]
Net::SMTP.start('mail_server') do |smtp|
smtp.sendmail( body, @from_address, @send_address )
end
exit
end
begin
while 1
page = agent.get(url)
s = page.title.tosjis
if s =~ /match_word/
puts "#{url}: #{s}\n" if $DEBUG
else
puts "#{url}: #{s}=#{match_str.tosjis}\n" if $DEBUG
send_alert("#{url}: #{s}\n")
end
sleep wait_time
end
rescue => ex
puts "#{url}: #{ex.message}\n" if $DEBUG
send_alert("#{url}:#{ex.message}\n")
end
【参考にしたサイトです】
トラックバック(0)
このブログ記事に対するトラックバックURL(トラックバックは承認後に公開されます)


コメントする