第一时间解决代码异常报错方案,sentry是一个工单系统,收集代码中的错误信息,保留完整的案发现场,帮助开发人员快速知晓、解决、追溯问题.
sentry提供Saas版本付费开通,不仅如此还开源了代码,提供有运维能力的公司或个人私有化部署.
支持丰富的语言环境,前后端91个选择.
先简单了解一下sentry是个啥.重点关注这几个仓库.
github主页,sentry
私有化部署脚本,self-hosted
钉钉低版本插件
钉钉高版本插件
一 准备资源
Docker 19.03.6+
Compose 2.0.1+
4 CPU Cores
16 GB RAM
20 GB Free Disk Space
以上是最低要求,不满足的安装会失败,或运行期异常.
二 下载脚本
下载 self-hosted仓库,或者压缩包解压, 查看.env文件,里面是一些端口号和镜像的版本号还有健康检查的一些配置.
三 修改脚本
这一步是为了国内网络环境安装加速,以及安装钉钉机器人插件的,默认官方不提供钉钉机器人插件,所以要自己单独扩展.
- 下载加速
vim install/install-wal2json.sh
将github仓库地址改为国内gitee仓库地址 https://gitee.com/li-jia-dong/wal2json/releases/download
2. 安装钉钉插件
将脚本模板复制一份,按照脚本里的提示添加钉钉插件 https://github.com/aansheng/sentry-dingding
在实际使用中,测试钉钉插件时如果报错 Event' object has no attribute 'id issues ,修改插件为 sentry-10-dingding
cp sentry/enhance-image.example.sh sentry/enhance-image.sh
vim sentry/enhance-image.sh
#sentry/enhance-image.sh
apt-get update
apt-get install python3-pip
#注意,如果安装sentry-dingding之后,钉钉测试报错修改为sentry-10-dingding
pip install sentry-dingding
退出保存wq!
四 安装开始
sudo ./install.sh
安装过程中,会有提示,是否收集错误上报给sentry,可以选n.还有是否创建管理员账号,可以选y创建.安装时间会比较长.
等安装完成后,会提示docker-compose up -d运行服务,大概会有五十多个容器启动.
启动完成,配置nginx转发至localhost:9000端口,或者本地访问9000端口即可
五 测试使用
如果使用的是springboot项目,直接引入starter依赖,开箱即用.我用的版本号为7.6.0
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring-boot-starter</artifactId>
<version>7.6.0</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-jdbc</artifactId>
<version>7.6.0</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>7.6.0</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-openfeign</artifactId>
<version>7.6.0</version>
</dependency>
在sentry上创建一个项目获取dsn,然后按照sentry的指引添加简单的配置即可.
六 钉钉报警
搞定