功能简介
网络错误日志记录(Network Error Logging,NEL)是一种基于浏览器的报告系统,它允许客户端将其遇到的网络失败信息上报至外部端点。开启此功能后,EdgeOne 会在响应头中下发 NEL 策略,指示客户端收集并上报网络错误信息至指定的日志接收端点。通过分析这些日志,您可以获得从客户端用户到 EdgeOne 边缘节点之间“最后一公里”的网络可见性,及时发现和定位网络故障。
说明:
“最后一公里”指的是从终端用户到资源的第一入口点(例如腾讯云 EdgeOne 边缘节点)之间的网络路径。这一路径至关重要,因为它是资源请求的必经之路:如果“最后一公里”出现问题,用户将无法连接到您的服务。
使用场景
1. 提升业务可观测性:对于用户体验要求高的业务,例如在线会议、游戏、金融交易等,您可以通过 NEL 日志感知终端用户遇到的各种网络问题(如 DNS 解析失败、TCP 连接超时等),从而快速定位问题根源,提升业务稳定性。
2. 优化调度策略:EdgeOne 可利用收集到的全局 NEL 数据,优化其智能调度系统,尽可能将用户请求调度到网络质量更优的边缘节点,从整体上提升加速效果。
3. 故障排查与诊断:当用户反馈访问异常但源站和 EdgeOne 节点监控均无异常时,NEL 日志可以提供客户端侧的详细错误信息,帮助您快速判断问题是否出在用户本地网络或中间链路。
工作原理
当您为站点启用 NEL 功能后,EdgeOne 会在所有对此站点下域名的响应中携带头部,指示客户端(例如浏览器)如何上报网络错误。
响应头示例
EdgeOne 会在响应中下发以下两个头部:
Report-To: {"endpoints":[{"url":"https://nel.teo-rum.com/eo-cgi/nel"}],"group":"eo-nel","max_age":604800}NEL: {"success_fraction":0.1,"report_to":"eo-nel","max_age":604800}
日志上报示例
客户端上报的 NEL 报告负载(Payload)格式如下:
{"age": 20,"type": "network-error","url": "https://example.com/previous-page","body": {"elapsed_time": 18,"method": "POST","phase": "dns","protocol": "http/1.1","referrer": "https://example.com/previous-page","sampling_fraction": 1,"server_ip": "","status_code": 0,"type": "dns.name_not_resolved","url": "https://example-host.com/"}}
数据隐私与安全
EdgeOne 高度重视用户数据隐私与安全。在处理 NEL 报告时,我们遵循以下原则:
地理位置信息:我们会根据客户端 IP 地址解析其所属的 ASN、国家/地区。这些匿名化信息用于全局网络质量分析和调度优化。
IP 地址处理:客户端的原始 IP 地址仅在请求处理期间(毫秒级)暂存于内存中,用于生成上述匿名化地理位置信息。在 NEL 报告被成功接收和处理后,原始 IP 地址将立即从系统中清除,不会在任何日志或持久化存储中保留。
操作步骤
1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,在右侧导航栏中,单击网络优化。
3. 找到网络错误日志记录卡片,单击开关开启功能。
说明:
1. 免费版站点将自动开启网络错误日志记录功能;其他套餐版本站点可手动开启。
2. 若需配置自定义 NEL 策略,可使用 规则引擎-修改 HTTP 节点响应头 功能进行配置。
3. 目前暂不支持查看 NEL 上报的日志和相关统计数据,相关需求请关注后续产品更新动态。