Skip to content

日志分析与排障指南 ​

日志能帮你做什么 ​

监控分析告诉你"系统是否正常",日志分析告诉你在"具体发生了什么"。当用户反馈"页面打不开"或"接口返回 500"时,你需要日志来回答:

  • 请求有没有到达负载均衡?
  • 请求被哪条分发规则匹配了?转发到了哪台后端服务器?
  • 后端服务器返回了什么状态码?耗时多少?
  • 客户端是什么浏览器?从哪个地区访问的?是否通过 SSL 加密?

矩尺平台提供两种日志方式,各有用处:

方式位置用途
日志中心(内置)虚拟服务详情 → 日志标签图形化分析、快速排障、客户端全景洞察
Syslog 外发各转发引擎管理页 → 日志管理对接外部日志平台(ELK、Splunk 等)、长期归档

方式一:日志中心(内置图形化分析) ​

开启日志 ​

先确认请求实际命中哪条规则,再开启对应的日志。显式规则在【负载流量管理 → 分发规则 → 四层分发规则/七层分发规则】编辑;默认规则在虚拟服务编辑页的“默认分发规则”中配置“业务日志存储到日志中心”。只打开默认规则,不会覆盖显式规则的日志开关。

配置项说明
存储到日志中心总开关。开启后,命中此规则的请求日志才会被记录
记录全部 HTTP 头部(仅七层分发规则具有)开启后记录完整的 HTTP 请求和响应头部。日志量会显著增加,但对排查协议类问题(如 Header 丢失、Cookie 异常)非常有用
每秒上报日志数日志上报限额,0 表示不限制;超过限额的请求可能没有对应日志,不能将日志条数直接等同于总请求数

按需开启,避免日志洪水

不需要对所有分发规则都开日志。例如:/api/ 的高频接口可以不开(或设置较低的上报阈值),/admin/ 的管理后台可以全量开启。通过分发策略精准控制——只在需要排障的规则上打开日志开关,其余规则保持关闭。

保存配置并产生验证请求 ​

分发规则的两个日志开关

图中展示两个独立开关,录制时均关闭;按实际目的开启。默认规则具有对应的“业务日志”设置,不能只在一条未命中的规则上打开日志。

  1. 保存规则及虚拟服务,执行页面提示的配置变更。
  2. 记录客户端发请求的时间、时区、目标 VIP/端口、Host、路径和返回码。
  3. 发送少量可识别的业务请求,例如使用专门的验证路径或查询参数;不要将密码、Token 放入标记。
  4. 到目标虚拟服务详情查询覆盖该时间段的日志,等待正常的上报与入库延迟后刷新。

日志开关不能补录过去没有记录的请求。排障完成后按需要收紧记录范围,避免一直记录全部头部;头部可能包含 Cookie 或 Authorization,分享截图和导出文件前应遮盖凭证。

查看日志详情 ​

入口:选中虚拟服务 → 详情 → "日志" 标签。

虚拟服务日志列表

日志列表支持按时间范围和多种过滤条件查询。顶部柱状图展示时间段内的日志量分布,点击柱子可钻取到该时间段的具体日志。

点击某条日志的"详情",可查看单条请求的完整链路信息:

虚拟服务日志列表详情

详情中高亮文字可点击跳转至关联资源(如服务器池、转发引擎)。

单条日志的核心字段:

字段分类包含内容排障用途
客户端信息客户端 IP、端口、地理位置、浏览器类型、操作系统、设备类型定位"谁在访问"
请求信息HTTP 方法、URL、Host、Header、请求包体大小还原"请求长什么样"
SSL 信息SSL 版本、加密套件确认加密通道是否正常
虚拟服务信息虚拟服务名称、监听 IP:端口确认"请求进入了哪个入口"
分发规则命中的分发规则名称确认"请求走了哪条规则"
后端信息服务器池名称、服务器节点 IP:端口确认"请求被转发到了哪里"
响应信息HTTP 状态码、响应时长、响应包体大小确认客户端收到的结果,再结合后端字段区分响应来源
转发引擎处理请求的转发引擎 IP定位"哪台引擎处理的"

查询不到日志时按顺序排查 ​

检查项检查方法
查询对象是否进入了正确虚拟服务,而非另一端口或同名资源
时间范围包含请求实际发生时间,核对客户端、设备与浏览器显示的时区
过滤条件先清除过窄的条件,再逐步添加路径、客户端地址和状态码
命中规则显式规则与默认规则分别检查日志开关,确认变更已生效
上报数量检查每秒上报限额;短时间大量请求不保证每条都有日志
请求阶段TLS 握手或请求解析尚未完成就失败时,可能没有完整 HTTP 访问日志,需要查对应错误日志
上报链路检查实际承载引擎到日志服务的连通性和日志服务状态
主备切换检查切换后的引擎及查询时间段,不只查看原主引擎

日志查询结果有条数上限。需要分析错误比例或耗时时,先缩小时间范围并确认采样与上报限额,避免只用被截断的一页数据下结论。查询方法与字段入口见虚拟服务手册。

记录全部 HTTP 头部:排障利器 ​

当遇到以下问题时,记录全部 HTTP 头部 可以帮你快速定位:

  • 后端说"没收到某个 Header" → 日志中确认请求头部是否有该 Header
  • Cookie 丢失/异常 → 日志中查看完整的 Cookie 内容
  • CORS 跨域问题 → 查看 Origin 和 Access-Control-* 头部
  • 认证失败 → 查看 Authorization 头部是否被正确转发
  • 移动端/PC 端兼容问题 → 通过 User-Agent 头部定位

客户端全景分析 ​

在日志列表右侧菜单,可切换到多个全景分析视图,从不同维度洞察客户端访问规律:

基础维度:

分析视图展示内容排障用途
客户端地址访问量 Top 客户端 IP发现异常流量源(如某个 IP 访问量暴增)
地理分布按国家/地区统计访问量定位区域性问题(如"某地区用户反馈慢")
SSL 版本TLS 1.2/1.3/国密的分布比例确认加密协议使用情况,排查旧版客户端兼容问题
HTTP 状态码2xx/3xx/4xx/5xx 分布一目了然看错误率,点击某个状态码钻取详情
URI访问量 Top URI发现高频接口、定位"哪个接口 4xx 最多"
HTTP 慢请求响应时间超长的请求列表直接定位性能瓶颈
浏览器Chrome/Safari/Firefox 等分布排查浏览器特定 Bug
设备桌面端/移动端/平板分布判断流量来源设备类型
操作系统Windows/macOS/iOS/Android 分布辅助定位 OS 特定问题
外链来源Referrer 来源统计了解流量从哪里来
HTTP 方法GET/POST/PUT/DELETE 分布确认 API 调用方式分布
可信网关与可信网关业务相关的分析不等同于 XFF 可信代理集合;客户端地址溯源需另行核对 XFF 解析配置

AI 虚拟服务专属日志视图 ​

当虚拟服务开启了 AI 模式后,日志标签下会额外出现以下专属分析视图:

分析视图展示形式排障用途
Token 消耗统计折线图:提示词 Token + 生成 Token 随时间变化监控大模型调用成本,支持输入单价自动计算金额
模型访问量桑基图:用户请求模型 → 推理组 → 实际请求模型追踪模型请求的完整链路,发现推理组路由异常
结束原因环形图:Stop / Tool_calls / Function_call 等占比判断大模型调用成功率(Stop+Tool_calls+Function_call = 成功)
模型推理组访问量折线图(各推理组访问量 / Token 生成速率)+ 环形图(占比)确认流量在各推理组间是否均衡
模型推理组访问时延折线图(首字节时延 / 模型响应耗时,平均值或 P95)+ 箱型图(最低/P25/P50/P95/P99)定位"哪个推理组慢"、确认长尾延迟

虚拟服务日志Token消耗统计虚拟服务日志模型访问量虚拟服务日志模型推理组访问时延


方式二:Syslog 外发到外部系统 ​

适用场景 ​

  • 已搭建 ELK、Splunk、Graylog 等日志平台,需要将矩尺日志统一汇入
  • 需要长期归档日志(合规审计)
  • 需要在外部平台做跨系统的日志关联分析

配置方式 ​

Syslog 外发是每个转发引擎独立配置的——在每台转发引擎的【单台设备管理 → 日志管理】中分别设置。

两台引擎可以发送到同一日志服务器,并用不同标签区分来源。主备切换后由另一台承载业务,因此两台的目标地址、端口、标签和网络连通性都要核对。

开启或关闭日志

配置项说明
设备日志开关与外发配置在各引擎分别配置;业务访问日志还需开启实际命中规则的“导出到外部系统”
日志类型四类可选:健康检查错误日志、负载均衡错误日志、业务访问日志、配置错误日志
协议/ IP / 端口Syslog 服务器地址和接收端口
标签(Tag)自定义标签,如 engine-A-n6,用于在外部日志平台区分来源

自定义上报字段 ​

对于业务访问日志,可以按需配置上报字段项和字段名称,避免上报无用字段浪费带宽和存储。

“存储到日志中心”和“导出到外部系统”是独立配置,不应将 Syslog 外发理解为自动关闭日志中心。设备“日志导出”页下载文件与 Syslog 外发之间的界面限制,也不等于业务日志中心不可用。验证时分别检查内置查询结果和外部服务器收件结果。


建立可复核的排障记录 ​

保留同一时间窗口中的请求条件、规则和策略配置、访问日志、负载均衡错误日志及后端日志。比较性能时还要记录并发量、请求体大小、连接复用和是否命中同一后端;配置不同或采样范围不同的两次耗时不能直接比较。

访问日志里的总时长不是纯后端处理时间。应结合连接/响应相关字段与后端记录判断耗时落点;字段缺失时保留“不足以判断”的结论,不从一个总时长倒推出后端慢。

排障实战:用日志定位问题的典型流程 ​

场景一:用户反馈"访问网站返回 502" ​

排查步骤:

  1. 进入目标虚拟服务详情 → 日志标签
  2. 时间范围设为用户反馈的时间段
  3. 按 HTTP 状态码过滤 → 查看 502 请求
  4. 查看一条 502 日志的详情,核对处理方式、命中规则和服务器节点。该状态码可能由负载均衡或后端产生,不能只凭存在节点地址就认定该节点返回了 502
  5. 进入该节点的【分析】页面 → 查看该时间段是否健康检查异常(可能节点已被标记为下线)
  6. 结合响应时长、负载均衡错误日志和同一时刻的后端日志,区分连接失败、等待超时、无可用节点、策略拒绝及后端实际返回错误
  7. 如果开启了"记录全部 HTTP 头部":检查请求头部是否完整、后端返回的响应头部有无异常

场景二:新版本上线后错误率上升 ​

排查步骤:

  1. 进入虚拟服务日志 → HTTP 状态码全景视图
  2. 对比上线前后的状态码分布变化(如 200 从 99% 降到 85%)
  3. 点击增长的状态码(如 500),钻取到具体日志列表
  4. 按 URI 分组查看 → 是某个特定接口返回 500,还是全面出现?
  5. 查看"分发规则"字段 → 确认灰度/金丝雀策略是否按预期路由到了新版服务器池
  6. 查看"服务器节点"和"服务器池"字段 → 确认请求是否被路由到了正确版本的后端

场景三:移动端用户反馈"页面白屏",PC 端正常 ​

排查步骤:

  1. 切换到"设备"全景视图 → 确认移动端流量占比是否正常
  2. 切换到"浏览器"视图 → 查看是否有特定浏览器(如旧版 iOS Safari)的请求
  3. 切换到"操作系统"视图 → 查看 iOS/Android 版本的分布
  4. 在日志列表中按设备类型或 User-Agent 过滤,查看移动端请求的 HTTP 状态码和响应包体大小
  5. 如果响应包体大小为 0 或异常小 → 可能后端对移动端 User-Agent 返回了空响应
  6. 如果开启"记录全部 HTTP 头部":检查移动端请求的 Accept、Content-Type 等头部是否与 PC 端不同

场景四:AI 大模型接口调用成本异常增长 ​

排查步骤:

  1. 进入 AI 虚拟服务日志 → Token 消耗统计
  2. 查看提示词 Token 和生成 Token 的趋势曲线,判断是哪类 Token 增长了
  3. 输入 Token 单价,计算实际金额消耗
  4. 切换到"模型访问量"桑基图 → 查看是否有请求被意外路由到了高成本模型
  5. 切换到“结束原因”环形图,区分正常结束、工具调用、截断及异常;不能将所有非 Stop 结果都当作超时,需结合实际响应和错误日志判断
  6. 切换到"模型推理组访问时延" → 如果 P95/P99 时延显著升高,可能导致用户频繁重试(重试 = 重复消耗 Token)

场景五:怀疑某个 IP 在恶意刷接口 ​

排查步骤:

  1. 切换到"客户端地址"全景视图 → 查看 Top IP 列表
  2. 如果某个 IP 访问量远超其他 → 点击该 IP 进入过滤视图
  3. 查看该 IP 的请求 URI 分布 → 是否集中在某个接口
  4. 查看该 IP 的请求频率 → 在日志列表中按时间排序,确认是否为机器行为
  5. 确认后,可通过 IP 集合管理 将该 IP 加入黑名单

日志相关限制与注意事项 ​

  1. 免费版不支持日志功能,包括日志中心和 Syslog 外发。
  2. 日志目的地独立配置:内置日志中心与外部导出分别检查开关和上报链路,不能由其中一个可用推断另一个也可用。
  3. 每秒上报日志数是关键保护机制,超出部分静默丢弃。如果日志中"缺了一些请求",可能是阈值设低了。
  4. 记录全部 HTTP 头部会增加每条日志的数据量和转发引擎的 CPU 开销,不建议全量开启。建议仅在排查特定问题时临时开启。
  5. AI 虚拟服务的日志字段比普通虚拟服务更多(AI 大模型日志字段),日志存储和查询开销更大。
  6. 默认查询条数为 1000 条,过大的查询数量会影响查询速度,建议缩小时间范围或增加过滤条件。

Syslog 配置详见 日志管理用户手册,日志中心的更多操作参见 虚拟服务 - 日志。