无论是软件工程师部署新功能、网络工程师更新路由,还是安全工程师配置新防火墙规则,您都需要一种可见性,知道系统是否按预期运行——否则,需要知道如何修复。
Cloudflare 致力于帮助客户获得对由 Cloudflare 保护的服务的可见性。成为所有网络活动的单一控制面板始终是 Cloudflare 的目标之一。今天,我们要概述 Cloudflare 可观察性的未来愿景。
什么是可观察性?
可观察性意味着获得对系统内部状态的可见性。它用于向用户提供工具,以便知道正在发生什么,在何处发生,以及原因是什么。
Cloudflare 认为可观察性有三个核心组成部分:监控,分析和取证。监控测量系统的运行状况——在出现问题时告诉您。分析为您提供可视化数据的工具,以识别模式和洞察。取证帮助您回答有关事件的一些非常具体的问题。
可观察性在安全性的上下文中变得特别重要,以验证安全产品(例如防火墙和或 Bot Management 执行的任何缓解操作)不是误报。那个请求被正确分类为恶意了吗?否则,哪一个检测系统如此分类?
Cloudflare 还有能够提高应用程序和企业网络性能的产品,允许开发人员编写在我们全球网络上快速运行的代码。我们希望为客户提供对通过 Cloudflare 网络的每一个请求、数据包和获取的洞察。
监控与通知
分析是总结数据的绝佳方法,但您如何知道在_什么时候_去查看数据?没有人希望守着仪表板,不断点击刷新,以防出现什么问题。这就是通知的作用所在了。
所谓分析页面上出现 “问题”,我们是指您的流量或网络发生了显著的变化,并在我们的分析中以激增或锐减呈现出来。可用性和性能直接影响最终用户,我们的目标是进行监控并在发现问题时立即通知客户。
目前我们有很多不同类型的通知,从源错误率、安全事件和高级安全事件 ,到基于使用量的计费和运行状况检查。我们正继续增加更多通知类型,以对应我们出色的分析。随着我们的分析定制程度提高,我们的通知也将如此。
有很多不同的算法可用于检测激增,包括使用燃烧率和 z 分数。我们正继续迭代用于检测的算法,以提供更多变化,使它们更智能,并确保我们的通知既准确又不会造成太大干扰。
分析
假设您已经从 Cloudflare 收到一条警报。接下来会发生什么?
分析可用于获得对流量的整体视图,或者通过添加过滤器和时间范围来聚焦于特定类型的事件。在收到警报后,我们希望通过在 Cloudflare 仪表板上通过图表、高层次指标和前 N 位来向您显示具体是什么触发了警报。
无论您是开发人员、安全分析师还是网络工程师,Cloudflare 仪表盘都应该是您查看一切所需信息的地方。我们希望使仪表板的可定制度更高,以服务客户的不同用例。通过在仪表板中指定一个时间框架和和通过下拉列表过滤来分析数据,或者与原始日志一起构建您自己的指标和图表,让您清楚地了解正在发生的事情。
聚焦于安全,我们认为分析是部署安全策略前建立信心的最佳工具。接下来,我们计划将所有安全相关检测信号叠加到 HTTP 分析上,以便您能够使用仪表板来回答类似如下的问题:如果要阻止被 WAF 识别为 XSS 攻击的所有请求,我应该如何操作?
使用我们企业 Bot Management 的客户可能已经熟悉这个体验,随着我们对其进行改良并在此基础上进一步开发,我们其他所有安全产品将紧随其后。
分析是一个强大的工具,可查看高级别模式,并识别异常情况。我们正在开发新的仪表板、定制和功能,以扩大客户的用例。敬请关注!
日志
日志用于查看有关事件的特定细节。日志包含时间戳和描述事件的字段,用于在需要详细信息时获得细粒度级别的可见性。
在我们每一个数据集中,一个事件都测量不同的东西。例如,在 HTTP 请求日志中,一个事件是指某个最终用户从服务器请求内容或向服务器发送内容。对防火墙日志而言,在防火墙对一个 HTTP 请求采取一个操作时就发生一个事件。每个 HTTP 请求可能有多个防火墙事件。
今天,我们的客户使用 Logpull、Logpush 或 Instant logs 访问日志。Logpull 和 Logpush 非常适用于想要将日志发送到第三方(例如我们的分析合作伙伴)以存储、分析和关联其他数据源的客户。使用 Instant Logs,我们的客户可直接从仪表板或 CLI 实时监控流量并排除故障。我们计划开发更多功能来挖掘 Cloudflare 日志。我们正在努力开发在 R2 上存储日志——但下一步是什么呢?
我们听到客户反馈说,防火墙分析仪表板上的活动日志非常有用。我们要继续把日志的力量带到仪表板上,为我们所有产品提供同样的功能。对于将在 Cloudflare R2 上存储日志的客户而言,这意味着我们能最大限度减少采样数据的使用。
如果您在寻找一些非常具体的信息,日志查询也很重要,这就是取证的作用。目标是让您从高级别的分析一直向下调查,直至其中的每一条日志条目。给定一个唯一的标识符,例如 ray ID,您应该能够查找到某个请求,然后将其与所有其他相关活动关联起来。找出该 ray ID 的客户端 IP,这里可以产生丰富的用例:有哪些来自这个 IP 的请求是恶意的?该客户端使用了什么路径?
跟踪
日志非常有用,但它们并不捕捉某个请求的上下文。跟踪功能显示某个请求的整个生命周期,从用户向资源交付所涉及的每一个系统发出请求时开始。这是应用取证以帮助您发现找到具体信息的另一个方法。
这些方法用于区分应用程序的每一个部分,以识别错误或瓶颈发生在哪里。例如,您有一个 Worker 对您的源服务器和一个第三方 API 执行获取事件。分析能显示 Worker 的平均执行时间和错误率,但无法看到每一个操作。
使用 wrangler dev 和 console.log 声明对测试和调试代码非常有帮助。它们提供一些所需的可见性,但这样调试代码可能会非常乏味。
作为开发人员,您应该拥有工具来了解应用程序中发生的事情,以便能够向最终用户提供最佳体验。我们能帮助回答这样的问题:我的 Worker 执行在哪里失败?哪一个操作导致应用程序的延迟激增?
结合在一起
通知、分析、日志和跟踪每一个都有独特的用例,但组合起来,就成为向分析人员和开发人员提供可见性的强大工具。展望未来,我们很高兴能将在 Cloudflare 仪表板上带来越来越多这种功能。
在构建这些功能的过程中,我们能听到您的声音。如果您有兴趣分享用例和帮助我们制定路线图,请联系您的帐户团队!