Sentry是什么

Sentry是一个异常收集服务。对比简单的将异常输出到日志,通过Sentry来收集异常的好处是更加直观,且能够进一步与其它系统进行集成,比如邮件提醒、缺陷管理等。

Sentry提供了多种语言系统的客户端,使用各种语言实现的系统都可以选择Sentry来收集异常。在线上环境自己还没有正式应用过它,当前主要是将其用作开发期的异常监控服务。Sentry提供了线上托管版本,也可以选择自己进行部署。开发期的问题自然是选择在自有服务器上进行部署了。

安装Sentry

安装virtualenv

Sentry是Django实现的,自身有不少依赖库。为了避免依赖库之间的冲突,选择将Sentry安装在virtualenv环境下。

pip install virtualenv

创建对应的virtualenv环境

virtualenv ~/virtualenv/sentry
source ~/virtualenv/sentry/bin/activate

安装Sentry

在virtualenv环境下,

pip install -U sentry

安装Redis

Sentry依赖Redis,为了正常运行需要安装Redis。Mac下可以选择从redis.io下载或者从homebrew进行安装,

brew install redis

安装MySQL

Sentry是Django应用,因此数据库可以灵活选择。官方推荐PostgreSQL,不过个人觉得还是MySQL将就着用吧,毕竟资料更多也更熟悉些。还是通过homebrew进行安装。

brew install mysql

配置Sentry

创建Sentry所需的数据库

通过MySQL root账号进入刚安装的MySQL,

mysql -uroot

创建数据库,

create database sentry;

创建用户并授权,

grant all privileges on sentry.* to ’sentry@localhost’ identified by ‘password’;

创建Sentry配置文件

在shell下运行,

sentry init

默认配置文件为~/.sentry/sentry.conf.py。就直接使用默认位置的配置文件进行配置好了,修改配置文件中的内容,配置数据库连接,

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sentry',
        'USER': 'sentry',
        'PASSWORD': 'password',
        'HOST': '',
        'PORT': '',
    }
}

修改web url地址,

SENTRY_URL_PREFIX = 'http://0.0.0.0:9000'

运行Sentry

在shell下分别启动Sentry、以及Sentry Worker,

sentry start
sentry celery worker -B

也可以通过supervisor管理相关进程。

参考