Sentry 部署
Sentry 部署
什么是 Sentry? 我为什么要使用它?
简单来讲,Sentry可以监控线上项目,将每一个报错上报,整理,主动推送给你的邮箱。
如果你恰巧需要这样一个功能,那选Sentry准没错。至于Sentry其他更高级的功能,可以等入门之后慢慢了解。
Sentry 使用途径
Sentry可以自建服务,也可以采用官方提供的服务。官方提供的服务有免费的有收费的。以下是各个途径的功能对比。
| 功能列表 | 自建服务 | 免费版 | 团队版 | 商业版 |
| 多个项目管理 | √ | √ | √ | √ |
| 监控报错 | √ | √ | √ | √ |
| 邮件通知 | √ | √ | √ | √ |
| 开通子账户 | √ | × | √ | √ |
| 一个月以上数据保存 | √ | × | √ | √ |
| 作为插件接入其他管理平台 | × | × | √ | √ |
| 更多花里胡哨的统计 | × | × | × | √ |
官方服务
官方服务到 官网(https://sentry.io/signup) 注册一个账号即可使用。
自建服务
部署 Sentry 有两种方式。Docker 与 Python。
Docker部署复杂程度低,但对硬件要求高。最新版最低需要4核8G,历史版本最低内存也需要2400M。Python部署复杂程度较高,对硬件要求低。
可以视情况选择合适的自建方式。
使用 Docker 部署 Sentry
自建 Sentry 服务吃力不讨好,Docker 需要太高的配置,Python 又存在学习门槛。如果仅仅为了使用 Sentry,我建议使用官方服务。
如果官方的免费版无法满足使用需求,可以考虑使用我的另一个开源产品: GGT Sentry White ,结合钉钉机器人,提供报错信息的分发和报错信息日志功能。
Docker 一键式部署
Sentry 官方提供一键式部署 Sentry,只需要克隆 github 上的脚本即可。
1 | |
若需要部署 2400M 大小内存限制的 Sentry,可以克隆历史版本。
1 | |
克隆完成后进入目录,运行脚本 install.sh 即可使用。
使用 Python 部署 Sentry
必备环境
- Python3
- 关系型数据库(PostgreSQL)
- 内存型数据库(Redis)
- 进程守护(supervisor)
更新 apt 源
- 先复制备份原文件
- 然后修改为国内的阿里云镜像源
- 删除开头的 # 注释
- 更新 apt 源
1 | |
安装 PostgreSQL
安装
1 | |
配置
1 | |
将配置文件翻到最后,这里保存着各自连接方式,授权和鉴权。将
1 | |
一行最后的md5改为trust,意为信任localhost所有指令
创建数据库
切换到 postgres 用户,以使用 PostgreSQL
1
sudo -i -u postgres创建数据
1
createdb sentry进入数据库
在 Sentry 部署中,我们并不需要进入 sentry 数据库,之后查看数据也有其他数据库查看工具。
1 | |
安装 Redis
1 | |
安装 virtualenv
virtualenv 是 python 用来部署独立环境的工具,类似于虚拟机,在virtualenv中部署的项目将独立于主服务。
安装
1 | |
使用
创建文件夹
1
2
3
4
5
6
7
8mkdir /var/www
````
* 创建独立环境
```bash
cd /var/www
virtualenv sentryEnv进入环境
1
2cd sentryEnv
source bin/activate更新
1
bin/python -m pip install --upgrade pip退出环境
Python 部署 Sentry 的接下来全部指令均在 virtualenv 中运行,如非必要,不用退出。
1 | |
安装 Sentry 前的基础环境
libxml2-dev
更新索引
1
apt-get update安装
1
apt-get install libxml2-dev
libxmlsec1-dev
- ubuntu 20.04 libxmlsec1-dev 暂时无法通过 apt-get 安装,需要先安装一个安装程序
aptitude1
apt-get install aptitude - 安装
aptitude 提供多种子依赖的安装模式,但是模式1并不能将 libxmlsec1-dev 的全部依赖安装完毕。所以在执行下面命令时一定要记得:第一次选择 Y/n/… 时要选择 n,第二次和第三次选择 Y
1 | |
libxmlsec1-openssl
1 | |
千呼万唤始出来,安装 Sentry
安装
1 | |
修改BUG
- 在 Python 部署 21.6.3 版本的 Sentry 时存在一个类型错误需要修改。
1 | |
- 查找错误
1 | |
- 按
i,修改为typing.ClassVar
初始化
1 | |
安装 supervisor
安装
1 | |
配置
1 | |
写入如下内容
1 | |
使用
1 | |









