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管理相关进程。