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に定期報告されます。
専用のアカウントを用意して非公開設定にし、自分のアカウントからフォローするようにすると良いでしょう。また、twitterの設定で「自動催促」にチェックを入れておけば、24時間以内にpostが無いときに、twitterが連絡メールを送ってくれます。
ここでは、単純にuptimeコマンドを指定しましたが、アイデア次第で色々と監視対象を広げられそう。(たとえば、HDD温度とか)
参考:Twitter API にアクセスできる Ruby ライブラリ: Twitter4R - On the Rails