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

Webシステムでエラーが発生した場合、その情報を即座に・詳細に開発者に伝えるシステムは、とても重要です。

原始的にはexception_notification、定番どころではAirbrake(旧HopToad)があります。
Airbrakeは、エラーの概要やBacktrace, 発生時のセッション情報などの詳細をWebで管理でき、似たエラーをまとめてくれたり担当者へメールで通知してくれたり出来る、いたつくのサービスです。

高機能で使いやすいAirbrake

ただ、値上げしてだいぶ敷居が高くなってしまったんですよね。プロジェクト3つで$25/monthかかり、しかもエラーが60日で消えてしまいます。
(僕は旧プランのまま$5/monthで使えていますが、これ以上プロジェクトを作れません・・・)

そこで、オープンソースのAirbrakeクローン、errbitを使ってみました。
https://github.com/errbit/errbit

errbitをインストールしてみた

インストール

インストールはREADME通りにやれば簡単です。
Ubuntu 12.04 Server (さくらのVPS)にインストールしました。Rubyはインストール済みです。

# 依存ライブラリインストール(root)
apt-get update
apt-get install mongodb install libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev

# リポジトリ持ってくる
git clone https://github.com/errbit/errbit.git
cd errbit

# インストール
bundle install
rake errbit:bootstrap

# 起動
unicorn_rails -c config/unicorn.rb -D

# あとは適当にnginxでリバースプロキシ

なお、rake errbit:bootstrapのときに、ログインIDとパスワードが表示されます。
見逃したら、生成ルールはdb/seeds.rbに書いてあるのでそれを参照するか、rails cでUser.firstを書き換えてしまえば良いでしょう。

ログインしたら、使用するプロジェクトを「Add a New App」で作ります。
作成したら、API Keyをメモしておきます。

クライアントインストール

お次は、使用するRailsプロジェクトでクライアントをインストールします。
これは、airbrakeがそのまま使えます。

# Gemfile
gem 'airbrake'

# config/initializers/errbit.rb
Airbrake.configure do |config|
  config.api_key = '上記でメモしたAPI Key'
  config.host    = 'インストールしたサーバURL'
  config.port    = 80
  config.secure  = config.port == 443
end
# bash
bundle install

以上で設定は終わりです。
productionモードで起動して、エラーが発生すると、自動的にerrbitにエラーが蓄積され、メンバーにメールで通知が届きます。

設定次第で、redmineなどのissue trackerに自動で報告したりできます。airbrakeはlighthouseだけだったので、これは地味に助かります。

これだけ便利なツールがオープンソースで使えるのはすばらしいですね!
このシステム自体が落ちてしまうと元も子もないので、Uptimerなどに監視させておくと良いかもしれません。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。

高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(15区分 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、CITP、Ruby Programmer Goldなどを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ