Sentry基于Django开发,跨平台应用监控,是一个开源的实时错误追踪系统,开源监控服务运行状态,一旦有代码运行异常,会通过邮件把报错的路由,异常文件,请求等一些信息发送给开发者。
Sentry分为服务端和客户端SDK,SDK支持多种语言和框架,如:React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA、flask、C 等。同时它还提供了和其他流行服务集成的方案,例如 GitHub、GitLab、bitbuck、heroku、slack、Trello 等
Sentry主要功能
- 提供WEB UI
- 提供SASS版和私有部署2种方式
- 开源,授权协议为BSL,只要你不拿他来做SASS服务卖钱,自用可以免费商用
- 提供几乎所有主流开发语言和框架的SDK
- 提供完整的错误详情
- 支持自动上报错误和手动上报错误
- 支持WEB前端、后端、APP
- 支持多项目管理
- 支持账号权限管理
- 提供统一错误的聚合分析
Sentry部署资源要求
- Kubernets存储已经支持了动态PVC
- Kubernets已经支持Ingress
- Helm部署Sentry会部署sentry-corn、sentry-web、sentry-worker(2结点)、Redis(1master,2slave)、PostgreSQL
1. 设置Default StorageClass
在创建PVC时在不指定StorageClass的情况下,通过Default StorageClass创建数据卷。
kubectl get sc // 查看StorageClass
这里将 alicloud-disk-ssd(SSD云盘)配置为一个Default StorageClass,执行后alicloud-disk-ssd名字后面加了(default)字样。
kubectl patch storageclass alicloud-disk-ssd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
2. 添加sentry chart仓库
helm repo add stable http://mirror.azure.cn/kubernetes/chartshelm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubatorhelm repo updatehelm search repo sentry
3.下载chart
命令:helm fetch / --version
helm fetch stable/sentry
4.修改chart
由于阿里云的"PVC defined storage should equal/greater than 20Gi"
所以要把chart下载到本地,修改创建PVC的size大小为20Gi以上(默认是8Gi)。
5.本地安装chart(使用helm3)
kubectl create namespace sentry // 创建namespacehelm install sentry -n sentry --set persistence.enabled=true,user.email=example@example.com,user.password=123456 --set ingress.enabled=true,ingress.hostname=sentry.example.com,service.type=ClusterIP --set email.host=smtp.qq.com,email.port=465 --set email.user=user@example.com,email.password=123456,email.from_address=emample@example.com,email.use_tls=true --wait ./sentry
说明:
// sentry release名称,如果不指定,需要添加--generate-name// -n sentry 指定namespace// ./sentry 指定本地chart目录// user.mail 设置登录用户,默认为admin// user.password 设置登录密码,默认为admin// email.from_address SMTP user Email notifications are from// email.host SMTP host for sending email // email.port SMTP port // email.user SMTP user // email.password SMTP password
6. 登录
安装完成会出现一些sentry的信息
登录用户名为--set时的user.email,即展示信息的USER字段
密码获取使用下面命令:
kubectl get secret --namespace sentry sentry -o jsonpath="{.data.user-password}" | base64 --decode
7.中文设置
用户--User Settings--Language--Simplified Chinese
然后刷新即可,然后开始配置你的应用。
![1eb3ab3830f84345db804bf83550a55a.png](https://i-blog.csdnimg.cn/blog_migrate/30a72168e133be7e0e3b93752fcecc3d.jpeg)