【问题标题】:Logging 404 errors (with target and referrer URL fields)记录 404 错误(带有目标和引用 URL 字段)
【发布时间】:2014-03-29 18:18:33
【问题描述】:

我想在 ASP.NET MVC 站点(使用 ELMAH)中收集和分析 404 数据以解决任何实际问题。主要要求是以更专业、更密集但仍可查询的格式存储此信息,包括引用站点/URL。

我目前可以在 ELMAH 中查看 404。但是我不希望 ELMAH 收集我所有的 404(至少不是默认格式),因为这些错误日志变得太大太快。只有大约 1% 的 ELMAH 404 日志通常是相关数据,例如记录与普通漏洞扫描无关的异常详细信息。然后,如果我必须每周截断我的​​ ELMAH 表,则发现真正的错误变得非常困难,甚至是不可能的。

此外,即使在 EL​​MAH 中收集了所有数据之后,它也没有为关键的 targetreferer URL 字段(用于查询或聚合)提供专门的字段,这使得管理 404 成为可能。

如果有一个包(例如通过 NuGet)可以存储到 SQL,包括一个表示层,可以按最常见的错误或实际引用源的错误进行排序,甚至允许将它们标记为可见/已解决,这样它们就不会在未来的报告中显示,这将是一个理想的解决方案。任何提供其中一部分的解决方案都是一个很好的开始。

我可能会向 ELMAH 添加一个自定义处理程序并通过我自己的数据层记录到 SQL 来代替建议。

但是,我更喜欢打包的解决方案,它不需要利用 ELMAH。如果 ELMAH 不是解决方案的一部分,我可以手动将过滤器添加到 ELMAH(Elmah reporting unwanted 404 errorsELMAH - Filtering 404 Errors)。

【问题讨论】:

  • 呃,如果你不赞成/关闭投票,请发表评论 - 这怎么跑题了?安装 ELMAH 后,404 成为应用程序的责任。如果您认为有一种简单的方法可以将这个问题移到编程领域之外,那么注释不是也很有礼貌吗?最近人们似乎认为,如果没有可见的代码,那就是一个糟糕的问题。

标签: asp.net-mvc http-status-code-404 elmah error-reporting


【解决方案1】:

我是https://elmah.io 背后的开发者之一。 elmah.io 提供了您正在寻找的一些功能。您可以按不同的关键属性搜索错误。过滤器部分也可以使用我们的规则选项来实现,您可以在其中忽略来自特定用户代理等的错误。

我们还为 ELMAH 创建了一个 ErrorLog 实现,使您可以在 Elasticsearch 中存储错误:https://github.com/elmahio/Elmah.Io.ElasticSearch。您可以使用 Elasticsearch 的 UI(例如 Kibana)来搜索和汇总所有 404。

【讨论】:

  • 这是一个很好的答案。我喜欢 elmah.io 的想法,也喜欢您对 Elasticsearch 的引用。不幸的是,每天有数百个 404,50-100 美元/月。 elmah.io 的价格是我不准备在此应用程序中构建的费用承诺。
  • 我完全理解。除非您可以使用忽略规则过滤掉大部分错误,否则您应该考虑自己托管它。为什么你有所有这些404?你不能做点什么来解决这个问题吗?
  • 大多数 404 是漏洞扫描。其中很多也是来自会员发布文档的无效图像和样式链接,这是遗留转换过程的产物。有一堆看起来像是真正的糟糕推荐,但真的很难说这么多噪音。
  • 当然有时很难确定 404。在很多情况下,我会查看一个链接,并认为有人会根据我们的市场合理地期望在我们的网站上找到该链接,但随后我会在漏洞矩阵中找到该 URL。
  • 但是您不能通过用户代理、消息或类似方式识别这些错误吗?在这种情况下,只需为这些错误添加忽略规则。顺便说一句,elmah.io 仍处于测试阶段,所有软件包都是免费的。
猜你喜欢
  • 2011-07-06
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 2014-05-24
  • 2018-01-16
  • 1970-01-01
相关资源
最近更新 更多