Sentry 是什么
通常我们所说的 Sentry
是指 Sentry
的后端服务,由 Django
编写。8.0
版本使用了 React.js
构建前端 UI
。使用 Sentry
前还需要在自己的应用中配置 Sentry
的 SDK
—— 通常在各语言的包管理工具中叫做 Raven
。
当然,Sentry
还可以是其公司所提供的 Sentry SaaS
服务。
DSN(Data Source Name)
Sentry
服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的
PUBLIC_KEY和
SECRET_KEY。由此组成一个这样的
DSN`:
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL
通常会是 http
或者 https
,HOST
为 Sentry
服务的主机名和端口,PATH
通常为空。
安装
地址:https://github.com/getsentry/onpremise
需要提前安装好 Docker
和 docker-compose
,没有安装的请先去安装。
1. clone 安装源码
git clone https://github.com/getsentry/onpremise.git
cd onpremise
ls
Dockerfile Makefile README.md config.yml docker-compose.yml requirements.txt sentry.conf.py
2. 通过命令生成 secret key
docker-compose run --rm web config generate-secret-key
3. 将生成的 SENTRY_SECRET_KEY
添加到 docker-compose.yml
中
vim docker-compose.yml
4. 更新配置
docker-compose run --rm web upgrade
docker-compose up -d
启动和停止
docker-compose up -d # 启动
docker-compose stop
docker-compose down # 停止并删除容器
访问
localhost:9000
使用
用浏览器访问 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服务器上了。