Sentry: 错误日志集中管理
Sentry是个很好用的错误日志服务器,可以将程序错误的详细情况集中捕获,并提供一个很漂亮的Web界面来浏览错误。 Sentry本身是用python写的,但它支持python、php、ruby、iOS等多种语言。
要使用Sentry,你需要一台服务器来运行Sentry服务器,然后需要在代码中插入Sentry客户端的代码。服务器安装方法如下:
$ sudo pip install sentry
目前(2013/1/22)安装过程中可能会发生找不到某些依赖的情况,比如无法安装Django-1.4.3等, 可能需要手工下载Django-1.4.3的代码、编译安装后再重新执行上述命令。
我遇到的另一个问题是,代码使用的是django-1.3,而sentry要求django-1.4,而且我打算在应用服务器上运行sentry, 所以不得不使用virtualenv来安装sentry。
装好之后需要使用以下命令建立配置文件:
$ mkdir ~/.sentry
$ sentry init ~/.sentry/sentry.conf.py
然后打开~/.sentry/sentry.conf.py
,按照需要修改。我在SENTRY_WEB_OPTIONS
中加了一项daemon: True
,
使sentry以daemon模式运行。
然后启动sentry服务器即可。
$ sentry start
执行该命令会让你输入管理帐号和密码。
用浏览器访问 http://localhost:9000/
,即可看到sentry的Web界面。登录之后建立一个项目,然后即可配置客户端。
对于使用django框架的项目,客户端可以如下配置:
$ sudo pip install raven # 如果项目和sentry位于不同服务器,可能需要安装raven
打开django的settings.py,加入:
SENTRY_DSN = 'xxxxxxx' # 在sentry的Web界面中建立项目后即可查看
# for django的配置文档,从中可以找到`SENTRY_DSN`的值
INSTALLED_APPS = {
....
'raven.contrib.django', # 加入这一行
....
}
这样django项目中产生的异常就都会集中到sentry服务器上了。
如果不想自己搭建sentry服务器,还可以使用官方提供的服务,价格也不算太高。