Rails - 使用标签或类型记录事件并获取电子邮件警报 - 最佳做法?

Rails - Logging events with tags or types and getting an email alert - best practices?

想知道是否有人可以提供一些关于他们使用的日志记录技术的最佳实践,并可能使用 airbrake 或 newrelic 或 loggly 或类似性质的东西标记某些事件?

例如,假设我有理论上永远不会影响我的控制器的事件,因为它们在前端受到保护 - 就像普通用户能够管理管理员一样。我使用 ruby if 语句防止这些控件在前端输出。因此,如果我的控制器遇到这样的请求,那么我知道要么是该代码无法正常工作,要么是有人在对发送的请求进行黑客攻击。

无论如何我都想知道。我刚发现自己在写:

#TODO: Log this. Either the front end is broken or the user is sending hacked requests

想知道是否有人可以提供一些关于他们如何处理它的见解,也许使用第三方日志记录工具,也许使用某种标签,我可以使用所述工具设置电子邮件警报?

这里是来自 Airbrake 的摩根。我们没有 Airbrake 异常的标记。

通过我们的服务解决此问题的一种方法是从您的控制器向 Airbrake 发送自定义错误。
该错误将触发 Airbrake 通知电子邮件,您将收到通知。

例如:

# find me in app/controllers/some_controller.rb

# custom error
class ControllerAccessError < StandardError
end

def action
  ...
  msg = 'front end is broken or the user is sending hacked request'
  e = ControllerAccessError.new(msg)
  Airbrake.notify_or_ignore(e)
end

以下是有关使用 ruby 手动将错误发送到空气制动器的更多信息: https://github.com/airbrake/airbrake/wiki/Using-Airbrake-with-plain-Ruby

这里是来自 Loggly 的 Jason。您还可以设置一个新的记录器,然后记录您喜欢的任何内容。这使用没有任何专有库的纯 Ruby 代码。例如:

logger.warn("Regular user should not have access")

更好的是,您可以使用 JSON 字段来简化报告和过滤。我不是 Ruby 程序员,但我认为它看起来像这样?

logger.warn({:username => username, :type => "Access Violation", :message => "Regular user should not have access"}.to_json);

在 Loggly 中,您可以设置在收到与此搜索匹配的消息时通过电子邮件发送警报

 json.type:"Access Violation"