複数台あるアプリケーションサーバーのエラーログを集めて見たり、メール通知するのだとSentryは結構使いやすそう。
http://sentry.readthedocs.org/en/latest/
とりあえず、動かしてみる。
インストール
virtualenvでeasy_installのオプション指定にてインストール。mysqlを使う場合だと、
(venv)$ easy_install -ZU sentry[mysql]
とすればいいようだ。
DBはPostgreSQLが推奨されてる。
設定ファイルの作成
Djangoのsettings相当のファイルを作成する。
Sentryのinitサブコマンドでデフォルトのファイルを作成してくれる。
(venv)$ sentry init sentry.conf.py
設定ファイルはPythonのスクリプトなので、Pythonコードを書ける。
sentry.conf.py
最低限だとこのぐらい書けば動かせる。
# coding: utf-8 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # We suggest PostgreSQL for optimal performance 'NAME': 'sentry', 'USER': 'sentry', 'PASSWORD': '', 'HOST': '', 'PORT': '', 'OPTIONS': { } } } SENTRY_URL_PREFIX = 'http://localhost:9000' SENTRY_KEY = 'secretkey' SENTRY_WEB_HOST = '127.0.0.1' # ローカルのみなら127.0.0.1 SENTRY_WEB_PORT = 9000 SENTRY_WEB_OPTIONS = { 'workers': 2, 'worker_class': 'egg:meinheld#gunicorn_worker', 'daemon': True, }
SENTRY_WEB_OPTIONSはgunicornのオプションになるので、gunicornのドキュメントも参照すると良い感じ。
Configuration Overview — Gunicorn 19.6.0 documentation
worker_classはデフォルトだとSyncWorkerなので、本番でログの受付にHTTPを使うならgeventとかmeinheldを使うとよさそう。
HTTPをログの閲覧ぐらいにしか使わないのであれば、デフォルトで十分。
デフォルト以外のworker_classを使うなら、必要に応じて追加でインストールしておく。
デーモン起動したい場合はdaemonにTrueを指定する。supervisorやupstartで動かすのでもいいと思う。
データベーステーブル作成
起動
開始はsentryコマンドのstartサブコマンドで実行する。
初回だけ、データベーステーブルが作成されて、マイグレーションが実行される。
(venv)$ sentry --config=sentry.conf.py upgrade
このとき、スーパーユーザーを作成しますかって聞かれるので、適当に作っておく。後からだとcreatesuperuserコマンドで作れる。
(venv)$ sentry --config=sentry.conf.py start
ウェブブラウザで http://127.0.0.1:9000/ を開くとログイン画面が表示された。作成しておいたユーザーでログインできる。
ravenクライアントでテストして問題なし。
ぶっちゃけ、Vさんの記事に必要なことが大体まとまってるのでこれでいいのでは。