Sentry 之部署到生产环境

file

Sentry 可以说是炒鸡棒的集中式异常处理服务,但是用 Sentry 官方服务要收费,为了节省开支就选择自己搭建一个 Sentry 服务,在搭建 Sentry 服务的时候遇到一些小问题,在这里分享一下。

搭建

Sentry 的介绍之前我发表过一篇文章 Sentry 自动化异常提醒,Ubuntu 安装 Sentry 在社区也有一篇非常棒的实战安装文章 搭建自己的 sentry 服务,安装成功后是这个样子的

file

安装完后记得设置 根网站地址,并且 根网站地址 必须和搭建的 Sentry 域名一致

file

这里注意:安装成功后一定要设置正确的 根网站地址 否则项目发生了异常 Sentry 服务器接收不到。

邮件提醒

搭建 Sentry 服务之后,我又到项目之中安装好了 Sentry 官方提供的组件,为了测试安装是否正确自己手动制造了一个异常,然后 Sentry 服务也接收到了异常

file

file

但是,并没有发送邮件给我,Sentry 作为自动化异常提醒,没有了邮件提醒,那么 Sentry 的价值就失去了一半,我们也不可能每时每刻都在 Sentry 后端查看仪表盘。所以得想办法解决以下,邮件发送是需要自己配置的,因为是 Docker 安装的 Sentry 所以不知道怎么配置,解决问题的最好思路是先到 GitHub Issue 里面去看看有没有人和我遇到同样的问题。

file

太好了有其他伙伴也遇到了同样的问题,我们来看大神们给出的解决方案

file

docker-compose.yml 里面可以新增 额外的环境变量,在最下方我们可以找到 Mall Server 配置组,然后把对应的 env 里面的 key 放到 docker-compose.yml 里面

file

注意:修改 onpremise 项目下的 config.yml 是无效的

配置成功后重启一下 docker

docker-compose down && docker-compose up -d

OK,SMTP 设置已经有值了,点击测试设置发送一封测试邮件,之后会如你所愿收到一封测试邮件

file

生产环境发生异常后也会邮件提醒你

file

至此完结,好好享受 Sentry 带给我们的便利吧

2019-03-11 更新

Sentry 9.0 以上会给一个配置环境变量的文件 .env 其中设置邮箱的话步骤是:首先注释 docker-compose.yml 文件中的 Email 环境变量

file

然后在 .env 配置文件中加上 Email 环境变量

file

注意:如果使用腾讯企业邮箱的话请使用 587 端口、SENTRY_EMAIL_USERSENTRY_SERVER_EMAIL 请保持一致

PS

感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢关注「GitHub 热门」公众号
本帖由系统于 2年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 32
毛仔

小帅哥,我来抢个沙发

2年前 评论
毛仔

自动部署是东西你懂不懂的帅仔,社区里看到的一篇文章说的是利用githook来搞,我试了一下确实可以,但是有个问题,这个方案只能是代码服务器和生产服务器是同一台,但是我目前的情况是代码服务器在办公室,这样怎么做到自动部署呢?现在推线上很麻烦。

2年前 评论
Destiny

@贾济林 CI,持续集成自动化部署你得看 Jenkins 或者 Travis-CI,你想自动 pull 代码可以设置 webhook

2年前 评论
Destiny

一般大公司都是走 CI 的流程,看这篇 CI 持续集成 然后想方便自动 pull 代码看超哥的文章 http://overtrue.me/articles/2015/01/how-to... :thumbsup:
@贾济林

2年前 评论
毛仔

好的,多谢!

2年前 评论
TimJuly

修改onpremise项目下的config.yml是无效的

重新Build就生效

2年前 评论
Destiny

@TimJuly 我试过了。并没有读取里面的值

2年前 评论

使用阿里云云邮箱465端口配置就是不行,提示Connection unexpectedly closed: timed out

因为sentry默认支持TLS,没有使用SSL,可以看问题

https://github.com/getsentry/sentry/issues...

2年前 评论
Destiny

@Qinzm :+1:

2年前 评论
TcAlan

请教下 我想修改数据库 我们公司项目非常多,用默认自带的数据库和redis肯定不行,想改成独立的数据库和redis服务器 该怎么改呢

2年前 评论
wujunze

@Qinzm 使用阿里云云邮箱 25 端口也不行端口配置就是不行

2年前 评论

@wujunze 使用465端口,在requirements.txt文件中添加
django-smtp-ssl~=1.0
重新docker-compose build编译配置即可

2年前 评论
wujunze

好的 我换成80端口 已经可以了 关掉了 SSL验证

2年前 评论
Destiny

2019-03-11 更新

Sentry 9.0 以上会给一个配置环境变量的文件 .env 其中设置邮箱的话步骤是:首先注释 docker-compose.yml 文件中的 Email 环境变量

file

然后在 .env 配置文件中加上 Email 环境变量

file

注意:如果使用腾讯企业邮箱的话请使用 587 端口、SENTRY_EMAIL_USERSENTRY_SERVER_EMAIL 请保持一致

1年前 评论
monkey

邮件我觉得及时性不高,我一般会把通知发到钉钉、bearychat 或者 slack

1年前 评论
Destiny

@monkey 通知有邮件和叮叮

1年前 评论
Destiny

file

1年前 评论

Name or service not known

file

请问一下这中问题有没有遇到过

1年前 评论
Destiny

@well-monkey 电子邮件配置问题,新版本需要配置到 env 里面,你看看上面我更想的评论

1年前 评论

你好!我邀请成员,怎么不成功呢,都说没收到邀请邮件。。 这个跟报警邮件无关吧

file

1年前 评论

请问下Sentry可以做白屏时间,DNS时间解析这些性能监控吗

1年前 评论

您好,请问遇到过这种情况吗?

file
django-smtp-ssl~=1.0也加了 也重新build了,还是一直超时呢

1年前 评论
Destiny

邮箱的配置信息有误,你用其他程序试一下你账号密码

1年前 评论

@Destiny 您好,在其他地方试过了的,是可以成功发送邮件的

file

1年前 评论

file

file

file

还是一直超时 :confused:

1年前 评论
Destiny

@forgetOne 超时一般错误是邮件配置错误。

1年前 评论

@Destiny 好吧,谢谢您,我换成qq邮箱再试试

1年前 评论

代码主题是什么???

4个月前 评论

部署sentry 后,项目引入,发现api 接口请求时间被延长了。你遇到了这个问题吗?

1个月前 评论
Destiny

@CalmChild 没遇到过

1个月前 评论
CalmChild 1个月前
Destiny (作者) (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!