django异常日志_Sentry前端异常追踪平台集成钉钉消息提醒

      Sentry是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题,支持web前后端移动应用以及游戏,支持 Python、Java、Go、Node.js、Django等主流编程语言和框架 ,还提供了GitHub、Slack、Trello等常见开发工具的集成。Sentry可以实时监控前端的日志,一旦发生异常会第一时间把报错的路由路径、错误所在文件等详细信息以钉钉消息形式通知我们,并且利用错误信息的堆栈跟踪快速定位到需要处理的问题,目前公司的前端一些项目接入了Sentry进行错误日志追踪。根据官方文档推荐,使用docker方式安装,此次安装环境版本如下:

Docker version:19.03.12docker-compose version:1.26.2

服务器配置至少需要2400M内存

1、克隆sentry仓库

$ git clone https://github.com/getsentry/onpremise.git$ cd onpremise

2、添加钉钉通知插件

$ cd sentry && vim requirements.example.txt 加入如下内容# Add plugins here# sentry-dingchat==0.0.1 该插件报警样式不友好,换成下面这个# 钉钉通知插件sentry-10-dingding# 发邮件支持SSL协议django-smtp-ssl~=1.0# 钉钉插件需要的依赖redis-py-cluster==1.3.6

3、修改config.yml,配置邮件发送参数(可选)

# 虽然是使用钉钉消息,但是也把邮件方式的配置说明下cp sentry.conf.example.py sentry.conf.pycp config.example.yml config.ymlcp requirements.example.txt requirements.txt如果Sentry部署是在阿里云,那么只能使用tls来发送,我这里是本地服务器,使用qq邮箱进行配置vim config.ymlmail.backend: 'smtp'mail.host: 'smtp.exmail.qq.com'mail.port: 25mail.username: 'xx.xxxx@xxxx.com'mail.password: 'xxxxxxx'mail.use-tls: false# The email address to send on behalf ofmail.from: 'xx.xxxx@xxxx.com'

4、添加环境变量文件

# 修改 .env (没有可以创建),添加如下配置# 获取sentry key值,生成后的key添加到.env文件里docker-compose run web config generate-secret-keycp ~/onepremise/.env sentry/cat .env # 查看文件内容COMPOSE_PROJECT_NAME=sentry_onpremiseSENTRY_EVENT_RETENTION_DAYS=90SENTRY_IMAGE=getsentry/sentry:latestSNUBA_IMAGE=getsentry/snuba:latestRELAY_IMAGE=getsentry/relay:latestSYMBOLICATOR_IMAGE=getsentry/symbolicator:eac35a6058c7749bdf20ed219a377e49e02d0b76SENTRY_SECRET_KEY='72-(g_!*@1x(*&f*i1c5f&0(-^t3j=hhql8#&_l!i&c_b+p=tu' # 这是第一个命令生成的秘钥

5、安装

      过程中会提示创建一个初始用户,根据内容进行输入,如果你需要修改默认运行端口:执行docker-compose down关闭已启动的容器,修改onpremise目录下的docker-compose.yml和sentry.conf.py 里面的对应端口,然后执行 docker-compose build重新编译,完成后docker-compose up -d重新启动。

# 执行 $ sh install.sh 或者$ docker-compose build# 注意:部署Sentry完成后,以后如果添加新的插件支持或者修改参数都得重新build,如下:# Build the services again after updating, and make sure we're up to date on patch version$ docker-compose build --pull# Run new migrations$ docker-compose run --rm web upgrade# Recreate the services$ docker-compose up -d$ docker-compose ps

716911a672aa07b3d8c81acc1e6ea485.png

6、Sentry历史数据清理

此次安装没有安装定时清理的docker镜像,因为一直拉不下来镜像,只能放弃,原因你懂的。删除docker-compose.yml文件里如下几行:

snuba-cleanup:<< : *snuba_defaultsimage: snuba-cleanup-onpremise-localbuild:context: ./cronargs:BASE_IMAGE: '$SNUBA_IMAGE'command: '"*/5 * * * * gosu snuba snuba cleanup --dry-run False"'

没有了清理Sentry数据的镜像,只能通过手动进行清理。

$ docker exec -it sentry_onpremise_worker_1 bash$ sentry cleanup --days 60

7、安装完成,登入账号密码为上一步设置的用户名和密码,点击设置--->项目--->选择一个项目-->Legacy Integrations,找到DingDing插件并开启,如下图:

d964e5a1f7669057d8f5a242f78f7e97.png8、接下来进行配置钉钉机器人,使用钉钉建个群,然后创建钉钉机器人,拿到webhook地址及token,选择一个加密方式,根据上图在sentry中找到钉钉插件,配置钉钉token:

274a7b8f1ab823b4ec7ef69b0ba386d9.png

点击测试插件,钉钉收到信息,说明钉钉插件配置成功。

1a5c4fd098760535bbea72c28931f526.png

接下来进行前端项目的接入,具体细节参考大勇哥的呕心沥血之作《前端监控Sentry使用手册》,以下为我们前端项目接入后的钉钉消息图:可以看到消息内容有来自xxxx项目,还有简短的错误信息,更详细的错误日志可以点击“详细信息”跳转到sentry查看。

0102c57fc15ae9fa09e68ddf1ace9c30.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值