感兴趣可以先体验官网 sass 体验版,体验之后在决定是否私有化,免费服务存在上限。

前言

  • Sentry 支持私有化部署,可以使用 docker-composeK8S 的方式部署在自己的服务器上。
  • 为了快速上手,直接采用官方提供 docker-compose 命令一键进行部署。具体请查看 getsentry/onpremise
  • 为了保证服务的高可用,当访问量激增的时候不至于被流量压垮,建议使用 K8S 集群化的部署方式。链接

    安装

    clone

    1. $ git clone https://github.com/getsentry/onpremise.git
    2. $ cd ./onpremise
    3. $ chmod u+x ./install.sh
    4. $ ./install.sh
    5. # or
    6. $ sudo ./install.sh

    question

    服务器配置如下,安装遇到问题
    image.png
    image.png
    修改Dockerfile ```bash $ vim ./cron/Dockerfile

修改如下

ARG BASE_IMAGE FROM ${BASE_IMAGE} RUN sed -i “s@http://deb.debian.org@http://mirrors.aliyun.com@g“ /etc/apt/sources.list && apt-get update && apt-get install -y —no-install-recommends cron && \ rm -r /var/lib/apt/lists/* COPY entrypoint.sh /entrypoint.sh ENTRYPOINT [“/entrypoint.sh”]

再次安装

$ sudo ./install.sh

创建数据库,生成管理员账号

$ docker-compose run —rm web upgrade

启动 Sentry 服务

$ docker-compose up -d

查看容器

$ docker-compose ps

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1630308045266-b4d0f3ce-fed6-4ec1-8b74-e4a3580918d1.png#clientId=udc72ff7d-74d3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=980&id=uf426fdd0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=980&originWidth=961&originalType=binary&ratio=1&rotation=0&showTitle=false&size=87835&status=done&style=none&taskId=uf783e515-c0fc-496e-8a67-234c774ebba&title=&width=961)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1622191948012-dd54677d-3e33-4e4b-82e6-deef1808ffa2.png#crop=0&crop=0&crop=1&crop=1&height=755&id=ZsV7b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=755&originWidth=1625&originalType=binary&ratio=1&rotation=0&showTitle=false&size=142965&status=done&style=none&title=&width=1625)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1638359260774-deb81469-2eb2-4a98-83ec-f3e02517f2e2.png#clientId=u2a03c34e-5b0b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=859&id=ub1190cb4&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1718&originWidth=3352&originalType=binary&ratio=1&rotation=0&showTitle=false&size=578732&status=done&style=none&taskId=uf613ed4e-4b89-46f8-8764-076f74ab6bb&title=&width=1676)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1638360380154-7c248cde-0bb0-4c1b-9c1a-3d0cb4f8664d.png#clientId=u2a03c34e-5b0b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=864&id=u87c38e0d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1728&originWidth=3358&originalType=binary&ratio=1&rotation=0&showTitle=false&size=573339&status=done&style=none&taskId=ud3109dda-bc52-49dc-a5bd-098c8e68287&title=&width=1679)
  2. <a name="Htbsz"></a>
  3. # 邮件接入
  4. <a name="JDoXy"></a>
  5. ## 修改配置文件
  6. 修改 sentry/config.yml 配置文件<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1638338681610-deea9657-636a-4c54-b14f-c8b0e3e4d87b.png#clientId=ue4369205-7a8f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=316&id=u953e39e6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=316&originWidth=672&originalType=binary&ratio=1&rotation=0&showTitle=false&size=24927&status=done&style=none&taskId=uedd77ccc-dd1b-4948-8875-762e4d49fad&title=&width=672)<br />需要注意密码不是登录密码,而是smtp开启时候的密码,例如(找不到163的设置了,用qq的替代)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1638325710450-ec25598d-9077-4979-89c9-13366726e479.png#clientId=ubf92c18f-c28c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=442&id=u2485fc52&margin=%5Bobject%20Object%5D&name=image.png&originHeight=442&originWidth=1075&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71504&status=done&style=none&taskId=ue150c1b1-3473-4232-b07c-0394744bb2a&title=&width=1075)
  7. <a name="M5uqr"></a>
  8. ## 重启服务
  9. ```bash
  10. # 命令应在sentry目录下执行
  11. # 停止 sentry 相关容器
  12. $ docker-compose down
  13. # 重新build
  14. $ docker-compose build
  15. # 升级配置
  16. $ docker-compose run --rm web upgrade
  17. # 重新启动 sentry 相关容器(-d 是守护)
  18. $ docker-compose up -d

可以打开 https://xxx.com/manage/status/mail/ 你们部署的地址验证
image.png

问题

测试发送邮件出现{“error”:”timed out”}

检查 sentry_onpremise_worker 这个容器日志,针对日志排查下问题 我遇到过是因为 mail.password 密码的原因,填写了邮件的密码,这里的密码指的是 授权码

image.png

常见邮箱 SMTP 服务器地址设置

一般规则如下 比如邮箱域名为:abc.com SMTP:stmp.abc.com(或者是服务商的,如云邮,腾讯等)

企业邮箱的 SMTP host prod SSL / TSL 备注
云邮 smtp.yunyou.top 25 465 / 587
阿里企业邮箱 smtp.qiye.aliyun.com 25 465
腾讯企业邮箱 smtp.exmail.qq.com 25 465(587) 官方 SMTP 端口465,但实际上端口是587才可成功
163 smtp.163.com(smtp.qiye.163.com) 25 465

配置文件

数据存储位置修改

如果需要将数据保留时长改为 7 天。修改 .env 文件即可:

不推荐)或也可以直接修改 sentry.conf.example.pySENTRY_OPTIONS["system.event-retention-days"]=7

  1. SENTRY_EVENT_RETENTION_DAYS=7

sentry术语

  • Event:每次产生的日志记录,每个event有很多元信息,包括事件级别,项目信息,环境等。可通过点击具体事件对应的“JSON”数据进行查看。
  • Issue:相同的地方产生的一个异常称为一个Issue(是同一类问题的聚合)。假如在同一个位置发生了两次报错,那么会产生两个Event事件,但是只有一个Issue。
  • DSN:DSN是一个url,包含相关密钥信息,客户端与服务端(sentry服务器)就是通过这个DSN进行通信,上报错误信息的。
  • Auth Token:授权令牌允许基于你的账户使用Sentry API,我们主要用到使用@sentry/cli进行上传sourceMap文件等操作时,sentry/cli会基于Auth Token进行调用相应API方法。
  • Org:对应公司部署的sentry服务器上的组织名称。
  • Release:版本号。
  • Project:客户端名称。(接入sentry的具体项目名)
  • Tag:标签。