跳转到内容
搜索文档

Health Checks 分析

最后更新 查看 MarkdownAgent 设置

在您设置好包含通知电子邮件的独立 Health Check 后,请使用 Health Check 分析来调试可能存在的源站问题。

要访问 Health Check 分析:

  1. 在 Cloudflare 仪表板中,前往 Health Check Analytics(健康检查分析) 页面。

    Go to Health Check Analytics ↗

您可以评估源站在线时间、延迟、失败原因和特定事件日志:

  • Health Checks By Uptime(按在线时间划分的健康检查):显示各个源站在一段时间内的在线时间百分比。
  • Health Checks By Failure Reason(按失败原因划分的健康检查):显示按具体原因划分的故障细分。请参阅下文中的常见错误代码原因和解决方案
  • Health Checks By Latency(按延迟划分的健康检查):显示各个源站在一段时间内的平均延迟(以往返时间衡量)。
  • Event Log(事件日志):显示单个健康检查数据。
    • 选择每条记录以获取有关 Round trip time(往返时间)Failure reason(失败原因)Average waterfall(平均瀑布图)(显示有关请求阶段按时间顺序排列的数据)、**Response status code(响应状态码)**等的更多详细信息。
    • 请注意,Global(全球) 不是配置的区域;它代表来自所有已启用区域的汇总数据。

常见错误代码

TCP connection failed(TCP 连接失败)

原因

健康检查未能与您的源站服务器建立 TCP 连接。

解决方案

这通常在 Cloudflare 与您的源站之间发生网络故障,和/或防火墙拒绝允许我们的连接时发生。请确保您的网络和防火墙配置不会干扰流量。

HTTP timeout occurred(发生 HTTP 超时)

原因

源站未能配置的超时内返回 HTTP 响应。如果您将超时设置为较小的值(例如一到两秒),就会发生这种情况。

解决方案

Cloudflare 建议增加 HTTP 响应超时以允许源站服务器做出响应。

Response code mismatch error(响应代码不匹配错误)

原因

Cloudflare 收到的 HTTP 状态码与您的健康检查配置中 expected_codes 属性定义的值不匹配。

解决方案

响应代码必须与 expected_codes 匹配。通过将预期的响应代码与事件日志中收到的状态码进行比较,确认这些值是否正确。

其他原因

如果您将健康检查配置为使用 HTTP 连接,而您的源站服务器正在重定向到 HTTPS,您也可能会看到此问题。在这种情况下,响应代码通常是 301302303

解决方案

将您的 Cloudflare 健康检查配置更改为使用 HTTPS 或将 follow_redirect 的值设置为 true,以便 Cloudflare 可以解析正确的状态码。

Response body mismatch error(响应体不匹配错误)

原因

从您的源站服务器返回的响应体不包含您的健康检查中配置的 expected_body 值(不区分大小写)。

解决方案

确保 expected_body 位于响应体的前 10 KB 中。 ​​

TLS untrusted certificate error(TLS 证书不受信任错误)

原因

该证书不受公共证书颁发机构 (CA) 的信任。

解决方案

如果您使用的是自签名证书,Cloudflare 建议使用公开受信任的证书,或者将健康检查上的 allow_insecure 属性设置为 true

TLS name mismatch error(TLS 名称不匹配错误)

原因

我们的健康检查(客户端)无法将服务器证书上的名称与请求的主机名相匹配。

解决方案

检查您的健康检查配置,以确认在 Cloudflare 健康检查中设置的 header 值是否正确。

TLS protocol error(TLS 协议错误)

原因

如果您使用的是较旧版本的 TLS,或者您的源站服务器未配置为 HTTPS,则可能会发生此错误。

解决方案

确保您的源站服务器支持 TLS 1.2 或更高版本,并且已配置为 HTTPS。

TLS unrecognized name error(TLS 未识别的名称错误)

原因

服务器未识别客户端提供的名称。设置主机标头时,这将在初始 TLS 握手中被设置为 ServerName。如果未设置,Cloudflare 将不提供 ServerName,这可能会导致此错误。

解决方案

在您的健康检查对象中设置主机标头。

No route to host error(无路由到主机错误)

原因

从 Cloudflare 的网络无法到达该 IP 地址。常见原因包括 ISP 或托管服务商的网络问题(例如 BGP 层面),或者该 IP 不存在。

解决方案

确保 IP 准确,并检查是否存在 ISP 或托管服务商网络问题。

TCP Timeout(TCP 超时)

原因

数据传输未被确认,且数据重传未成功。

解决方案

确认握手的 SYN-ACK 是否在您的源站进行,并联系 Cloudflare 支持

Network Unreachable(网络不可达)

原因

由于网络不可用,Cloudflare 无法连接到源站 Web 服务器。这通常是由网络问题或不正确的源站 IP 引起的。

解决方案

检查 Cloudflare 的健康检查配置中为源站输入的 IP,或者为源站主机名通过 DNS 返回的 IP。

HTTP Invalid Response(HTTP 无效响应)

原因

通常由 HTTP 502 错误或错误网关引起。

解决方案

确保源站 Web 服务器对请求做出响应,且没有应用程序崩溃或处于高负载状态。

DNS Unknown Host(DNS 未知主机)

原因

源站 Web 服务器的主机名不存在。

解决方案

确认源站 Web 服务器的主机名能够解析为 IP 地址。

Connection Reset by Peer(连接被对端重置)

原因

客户端从源站 Web 服务器接收数据时发生网络错误。

解决方案

确认源站 Web 服务器是否正经历高流量或发生错误。

Monitor Configuration Error(监控配置错误)

原因

健康检查中存在配置错误,未对源站运行任何检查。

解决方案

检查您的健康检查配置,以确保它与发送到您源站的预期请求匹配。

DNS Internal(内部 DNS)

原因

源站 Web 服务器的主机名解析为非公共路由或受限的 IP 地址(例如 localhost 地址)。未对该源站运行任何检查。

解决方案

确认源站 Web 服务器的主机名解析为公共路由的 IP 地址。请注意,如果主机名解析为 Cloudflare 公共任播(anycast)IP(因为主机名通过 Cloudflare 代理),健康检查仍将运行,但会探测 Cloudflare 的边缘,而不是您实际的源站服务器。若要直接监控您的源站服务器,请将健康检查配置为使用源站 IP 地址或未代理的主机名。

Other Failure(其他失败)

原因

如果故障无法归类为上述任何其他类型的故障。

解决方案

联系 Cloudflare 支持

设置警报

您可以配置警报,以便在您的 Health Check 状态发生任何更改时通知您。

Health Checks status notification

Who is it for?

Customers who want to be warned about changes to server health as determined by health checks.

Other options / filters

Available filters include:

  • You can search for and add health checks from your list of health checks.
  • You can choose a trigger to fire the notification when your server becomes unhealthy, healthy, or either healthy or unhealthy.

Included with

Professional plans or higher.

What should you do if you receive one?

Review your health check analytics.

有关如何设置警报的更多信息,请参阅 Cloudflare Notifications

这篇文档对您有帮助吗?