我给公司搭建错误跟踪系统,方便排查问题,技术选型为 Sentry
9,因为其开源、轻量、能满足业务需求,相比最新版 Sentry,其搭建、维护也更容易,最新版 Sentry 在我们业务中有点杀鸡用牛刀了
安装与配置
使用 Docker Compose 安装 Sentry 9
docker-compose.yml
version: '2' |
启动:
docker comopse up |
Nginx 配置 Sentry 域名
server { |
初始化数据库数据
使用 Django 迁移初始化数据库数据
docker exec -it sentry sentry upgrade |
创建超级用户
docker-compose exec sentry sentry createuser --email [email protected] --password your_password --superuser |
配置 Sentry
域名配置
在 https://your-sentry-domain/manage/settings/ 中修改
邮件配置
修改 /etc/sentry/config.yml
中邮件的配置
# mail.backend: 'smtp' # Use dummy if you want to disable email entirely |
修改后:
使用 webhook 将警报接入飞书
在飞书群中接入机器人,项目配置机器人 webhook 后,当出现指定错误时,在群里告警
用户密码修改
几个问题
1、可能的坑:日志报错 relation “sentry_projectkey” does not exist
ProgrammingError('relation "sentry_projectkey" does not exist\nLINE 1: ...te_limit_window", "sentry_projectkey"."data" FROM "sentry_pr...\n ^\n',) |
原因:没有初始化数据库数据
解决方式:初始化数据库数据
docker exec -it sentry sentry upgrade |
2、页面报错
NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
#### Uhhhh |
原因:浏览器前端静态资源缓存的问题
解决方式:清浏览器缓存
3、通知发送问题
希望配置每个 Alert 都能通过告警机器人中发送到飞书群中,但出现有的可以发送,有的不可以发送,还没有找到原因
迁移 Sentry
为提供稳定性和访问速度,我将 Sentry 从物理机到腾讯云上
迁移用户、项目数据命令:
导出 Sentry 现有数据到 backup.json 中 |
- 可使用
Another Redis Desktop Manager
APP 连接 Redis
可能的坑
迁移后出现新用户注册报错的情况
原因:用户主键重复
解决方式:使用 pgAdmin4 工具连接 PostgreSQL 数据库,再执行以下操作
SELECT * FROM auth_user; |