Rails 由于云服务商做安全测试,exception_notification 发送大量邮件

ecloud · 2018年08月23日 · 最后由 ecloud 回复于 2018年09月03日 · 1394 次阅读

每天云服务器商进行安全测试,产生了上百个异常,发送了上百封的邮件,有人遇到这种问题吗?如何优雅的处理?

共收到 14 条回复

不发邮件,往数据库写,实现管理界面来看

http://github.com/rails-engine/exception-track

可以配置忽略一些异常类型

huacnlee 回复

第一次在公司学习ruby on rails的时候有用到这个gem. 之后忘记了是哪个。终于又发现了。

huacnlee 回复

谢谢,但是我们还是需要邮件提醒,涉及到金钱的问题,出现异常需要立马查看处理。

hooopo 回复

我在git的文档没找到如何配制,请问如何配制?谢谢。

rollbar可以吗

sentry?

bearychat-notifier 考虑下?

就是把异常打到聊天软件里,就不用再打开邮箱了,有问题还可以直接讨论。

当然 Slack 也有类似的 Gem.

bugsnag, 可以设置同一个错误邮件的频率

yfractal 回复

感谢,考虑下。

可以考虑下我给 exception_notification 添加的 Error Grouping 特性,通过 log2(n) 函数,保证同一个错误在第 1, 2, 4, 8, 16, 32, ..., 1024 次报错时才会发出告警,这样哪怕是成千上万次异常产生,通过对数,也可以直接降到很低的告警频率。这样你可以无痛继续使用邮件告警,又可以摆脱大量邮件的困扰。实乃居家旅行上班必备之良药。

我对待这类异常的做法是直接从根源上处理,该捕获的直接捕获。虽然搞懂这些一个个异常比较麻烦,但是可以一劳永逸,且写成 lib 共享后,其他项目也可以不再受这些烦恼。

例如简单的有刷接口,访问不存在路径的异常(线上不会报,但是日志会记录一大堆异常堆栈),可以在路由最下方使用 match 匹配所有路径的处理方式。另外像麻烦一点的有 Rack 层的参数解析异常,别人非得设置 json headers 然后在用一串非的 json 格式的参数数据请求你接口,这时候可以 加上中间件拦截 这类明显不正常的请求。

感谢各位给我的意见。让我学到了很多。

ecloud 关闭了讨论 09月03日 10:22
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册