酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Railsアプリの本番エラーをherokuで管理、メール通知する Errbit

サーバで稼働しているWebアプリのエラー監視して、エラーが出たら通知してくれるツール Errbitの紹介です。この分野で有名な有料のサービス Airbrakeのオープンソース版です。 また今回はこのサービスをheroku上で動かします。herokuの無料枠内で運用できるのでコストパフォーマンスも抜群だと思います!

errbit/errbit · GitHub


Errbitスクリーンショット

まずは、Errbitのスクリーンショットです。このスクリーンショットは左上から順番にアプリ一覧アプリのエラー情報エラー情報のサマリーエラーのトレース情報です。

Errbitの代表的な機能は次の3つです。

airbrakeのgemを使って、複数アプリのエラー情報を収集・表示
エラーが発生したらユーザーにメール通知
エラー発生時の送信先を管理

この他にもRedmineやGitHubへのissueへの登録や、Gtalk、Campfireなどへのエラー通知の機能もあるみたいです。

またRubyだけではなく、PHP/Pythonにも対応しているっぽいです。

Herokuを初めて利用する場合

もし、今回はじめてHerokuを使う場合は拙著のHerokuにRails 3.2.9/Bootstrapでデプロイ 最短・簡単ガイドだよ! の「Heroku ユーザー登録」と「ローカル環境設定」を実行して下さい。

Errbitのherokuへの導入手順

ローカルにErrbitのソースをダウンロード。

1
git clone http://github.com/errbit/errbit.git

heroku gemをインストールして、アプリ名をherokuに登録。
example-errbitのところにはアプリ名を登録して下さい。アプリ名は早いもの順なので、他のユーザーとかぶっていたらエラーが出ます。被らない名前にしてください。

1
2
gem install heroku
heroku create example-errbit --stack cedar

アプリの登録が成功すると、http://example-errbit.herokuapp.com/というURLがもらえます。これが自分のErrbitのURLになります。(ちなみに、この時点ではまだ見れないと思います)

続いてアドオンの有効化と各種設定を行って、herokuにpushします。

1
2
3
4
5
6
heroku addons:add mongolab:starter
heroku addons:add sendgrid:starter
heroku config:add HEROKU=true
heroku config:add ERRBIT_HOST=some-hostname.example.com
heroku config:add ERRBIT_EMAIL_FROM=example@example.com
git push heroku master

gitへのpushが完了するとErrbitへのログインIDとパスワードが出てきます。あとでブラウザでErrbitにログインするときに使います。

さらに、seedファイル(DBの初期設定データ)の読み込みを行います。

1
heroku run rake db:seed

ErrbitにWebアプリを登録

ここまでで、herokuのErrbitにアクセス出来るようになりました。つづいて、Errbitでエラーを収集したいWebアプリを登録していきます。

ブラウザでhttp://example-errbit.herokuapp.com/を開くとログインが出るので、先ほどgit pushした時に出たログインIDとパスワードを入力して下さい。

ログインできたらUrersタブ => ログインユーザー名 => editに進んでログインIDとパスワードを自分用に変更してください。(不正アクセスを防止するため)

次に、Appsタブ => Add new appsに進んで、Errbitでエラーを収集したいWebアプリを登録して下さい。

Errbit — Add App

Webアプリの登録が完了したら、設定が書かれたページが出てきます。次のセクションで使うのでメモしておいて下さい。

Errbit — like coupon

Webアプリ側の設定

続いて、エラーが発生したら通知をしてほしい側のWebアプリの設定を行います。

Gemfileに以下を追加して、bundle installを実行してください。

1
2
# Errbitと連携
gem 'airbrake'

続いて、config/initializers/errbit.rbを作成して以下を追加します。

1
2
3
4
5
6
Airbrake.configure do |config|
  config.api_key = 'Errbitにアプリを登録完了するともらえます'
  config.host    = 'example-errbit.herokuapp.com'
  config.port    = 80
  config.secure  = config.port == 443
end

これで設定は完了です。これでエラーが発生したら、Userタブで登録したメールアドレスにメールが届くようになります。ちなみに、テストでエラーを発生させた時の結果はしたようになりました。

Errbit

errbit/errbit · GitHub

Special Thanks

Railsのエラー管理はこれでOK!オープンソースのAirbrakeクローン、errbitを使ってみた | TechRacho

押さえておきたい書籍

いかがだったでしょうか?
もし説明がわかりにくかったり、間違っている場所があればぜひ一言!

Comments