哨兵小白-错误日志高效上报的白嫖方案
使用效果
在项目中部署了sentry
之后,当线上项目报错时,错误信息会第一时间发送至钉钉群
内,并且会@项目负责人
。
项目负责人的电脑与手机均会出现钉钉醒目提醒。
PC端提示
手机端钉钉内提示
手机通知栏提示
部署步骤
必备环境
- Golang 环境,用以打包编辑了阿里云密钥服务的
serverless
模块 - Linux 环境,由于阿里云
FC云函数
的BUG
,serverless
必须在linux
中打包。在windows
中打包即便修改了GOOS
也会报错。 - 若无法使用
Golang
环境,可等待作者开发Python
版本的serverless
模块(大概) - 阿里云
OSS
拥有一个私有读写权限的Bucket
,用以保存提供给serverless
的伪接口。可以与其他服务公用Bucket
,本项目仅在Bucket
中占用api
文件夹。 - 阿里云开启
FC云函数
服务,用以部署serverless
服务
本项目消耗的
OSS
与FC云函数
资源每月月末基本都会抹零。
创建 Sentry 账号
访问 Sentry
官网,创建一个账号。
克隆项目
1 | git clone git@github.com:CuratorC/sentry-white.git |
配置伪接口
- 在
sentry-white
文件夹中打开命令行模式,运行以下命令
1 | ./sentry-white-go.exe |
- 浏览器会自动打开
HTML
页面,在此页面配置阿里云 OSS
信息。
进入
负责人
界面,将相关项目负责人添加到系统中。进入
组织信息
界面,将刚才创建的Sentry
账号视作一个组织新建出来。
创建云函数
将
sentry-white
文件夹中的sentry-white-serverless
文件夹复制至GOPATH
中,打开main.go
文件,将阿里云相关的四条参数填写至文件头的变量中。在
linux
环境中将sentry-white-serverless
打包。相关命令如下1
2
3
4
5
6
7// 修改 Go 环境参数
go env -w GOOS=linux
go env -w CGO_ENABLED=0
// 打包项目
go build main.go
// 压缩项目
zip sentry-white-serverless.zip main将打包出来的
sentry-white-serverless.zip
复制出来备用。进入阿里云
函数计算FC
-服务及函数
-创建服务
创建函数
,选择从零开始创建
。- 运行环境选择
Go 1.X
- 函数触发方式选择
通过 HTTP 请求触发
- 实例类型选择
弹性实例
,内存规格选择128M
- 运行环境选择
- 创建成功后选择
上传代码
,将sentry-white-serverless.zip
上传上去。 - 上传完成后点击
测试函数
,当运行成功并看到部署成功
后,sentry-white
已完成部署。 - 选择
触发器管理
,复制公网访问地址
备用。此地址之后每次配置项目都需要使用。
项目接入
Sentry
- 在
Sentry
中创建需要监控的项目,按照Sentry
官网或者『ThreeParty』Sentry 接入指引将脚本加入项目中。建议采用『ThreeParty』Sentry 接入指引接入,因为官网指引缺乏项目环境方面的配置。
- 开启
Webhooks
功能- 在项目设置中找到
Alerts
(从上往下第三条),打开后找到WEBHOOKS
配置。 - 将阿里云
函数计算FC
中的公网访问地址
填入Callback URLs
点击Save Changes
- 在项目设置中找到
- 开启消息通知
- 继续在本页面点击右上角的
View Alert Rules
按钮。 - 新页面继续点击右上角的
Create Alert
按钮。 - 新页面点击中间偏下的
Set Conditions
按钮。 - 按照下图提示配置好消息通知。其中蓝框内都是需要修改的地方。
- 继续在本页面点击右上角的
钉钉
- 在钉钉中创建一个群,将相关项目负责人拉入群内。
- 在
群设置
-智能群助手
-添加机器人
-自定义
-添加
。 安全设置
中选择自定义关键词
,输入详情
点完成。- 添加成功后会给个
Webhook
地址,复制出来可见此地址为一个固定地址加access_token
参数组成。复制access_token
等待稍后使用。
- 在
sentry-white
点击组织的
查看项目
,点击新建
创建需要监控的项目。项目名(中文)
指项目中文代称,方便浏览。项目名(英文)
指项目文件夹名称/git仓库名/sentry上填写的项目名等。项目负责人
选择项目报错后需要通知的人。当选择了多个人之后,报错发生时每个人都会被艾特到。
编辑机器人信息
- 将
钉钉群名称
与access_token
参数填入,并保存。
- 将
项目设计思路
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 罐罐头工厂!
评论