tetraの外部記憶箱

«前の日記(2009-07-14) 最新 次の日記(2009-07-19)» 編集
Category;

2009-07-16

_ [Ruby] twitterで楽々サーバ監視

Rubyのtwitter APIに簡単にアクセスできるライブラリ、Twitter4Rを使って、サーバ監視スクリプトを書いてみました。 アイデアは至って簡単。サーバからtwitterへ定期的に状況報告をポストするというもの。

#!/usr/bin/env ruby
#
# a script of twittering the server status
#
 
require "rubygems"
gem "twitter4r",">=0.3.0"
require "twitter"
 
twitterID = "twitterのユーザID"
pass      = "パスワード"
defoutput = `uptime`
prefix = "uptime"
 
client = Twitter::Client.new(:login => twitterID, :password => pass)
message = "[#{prefix}] #{defoutput}"
status = client.status(:post, message) rescue nil

uptimeコマンドの標準出力をwitter4Rに渡してます。これをcrontabに登録しておくと、こんな風に動作時間や負荷などがtwitterに定期報告されます。

20090716200230

専用のアカウントを用意して非公開設定にし、自分のアカウントからフォローするようにすると良いでしょう。また、twitterの設定で「自動催促」にチェックを入れておけば、24時間以内にpostが無いときに、twitterが連絡メールを送ってくれます。

ここでは、単純にuptimeコマンドを指定しましたが、アイデア次第で色々と監視対象を広げられそう。(たとえば、HDD温度とか)

参考:Twitter API にアクセスできる Ruby ライブラリ: Twitter4R - On the Rails