酒と泪とRubyとRailsと

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

Errbit - Railsアプリの本番エラーをherokuで管理、メール通知する【無料枠】

サーバで稼働しているWebアプリのエラー監視して、エラーが出たら通知してくれるツール Errbitの紹介です。この分野で有名な有料のサービス Airbrakeのオープンソース版です。

また今回はこのサービスをheroku上で動かします。herokuの無料枠内で運用できるのでコストパフォーマンスも抜群だと思います!

Ruby 2.1.2対応しました!

errbit/errbit · GitHub


Errbitスクリーンショット

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

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

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

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

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

Herokuを初めて利用する場合

もし、今回はじめてHerokuを使う場合は拙著のRails4でheroku Pushまでの最短手順 の「Heroku ユーザー登録」と「ローカル環境設定」を実行して下さい。

Errbitのherokuへの導入手順

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

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

Gemfileの以下のコードのRubyのバージョン指定の部分を修正。

1
ruby '2.1.2'

つづいてBundle installを実行。

1
bundle install

db/seeds.rbのログイン設定を修正。

1
2
admin_email = "xxx@example.com"
admin_pass  = 'password'

アプリ名をherokuに登録。
xxxxの部分に自分のアプリ名を指定して下さい。アプリ名は早いもの順なので、他のユーザーとかぶっていたらエラーが出ます。被らない名前にしてください。

1
heroku create xxxx

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

続いてアドオンの有効化と各種設定を行います。

1
2
3
4
5
6
heroku addons:add mongolab:sandbox
heroku addons:add sendgrid:starter
heroku config:add HEROKU=true
heroku config:add SECRET_TOKEN="$(bundle exec rake secret)"
heroku config:add ERRBIT_HOST=some-hostname.example.com
heroku config:add ERRBIT_EMAIL_FROM=example@example.com

設定画完了したら、herokuにpushします。

1
2
git add . -A && git commit -m 'first commit'
git push heroku master

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

1
heroku run bundle exec rake RAILS_ENV=production db:seed

mongo DBにインデックスを追加。

1
heroku run bundle exec rake RAILS_ENV=production db:mongoid:create_indexes

あとは次のコマンドを実行すると、ブラウザにerrbitのページが表示されます。

1
heroku open

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'

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

ちなみに、Pure RubyのスクリプトでAirbrakeを使いたい場合もそれも同じコードで大丈夫でした!

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

無料でアプリケーションのエラーを賢く管理する (Errbit on heroku) - quattro_4’s diary

変更来歴

(2013/12/29 16:25) Ruby 2.1対応
(2014/06/29 16:00) Ruby 2.1.2対応、記述修正

押さえておきたい書籍

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

Comments