热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

django异常日志_Sentry前端异常追踪平台集成钉钉消息提醒,Go语言社区,Golang程序员人脉社



      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






推荐阅读
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
author-avatar
wwhh47123_829
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有