Skip to content

日志分析与排障指南

日志能帮你做什么

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

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

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

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

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

开启日志

日志中心需要在每条分发规则上单独开启。入口:【SLB 本地负载 → 分发规则 → 四层分发规则/七层分发规则】,编辑目标规则:

配置项说明
存储到日志中心总开关。开启后,命中此规则的请求日志才会被记录
记录全部 HTTP 头部(仅七层分发规则具有)开启后记录完整的 HTTP 请求和响应头部。日志量会显著增加,但对排查协议类问题(如 Header 丢失、Cookie 异常)非常有用
每秒上报日志数限制每秒最大日志条数,超出部分直接丢弃不记录。这是保护机制——防止日志量过大影响转发性能。建议根据业务 QPS 设置合理阈值

按需开启,避免日志洪水

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

查看日志详情

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

虚拟服务日志列表

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

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

虚拟服务日志列表详情

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

单条日志的核心字段:

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

记录全部 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 溯源

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 外发是每个转发引擎独立配置的——在每台转发引擎的【单台设备管理 → 日志管理】中分别设置。

为什么是每个引擎单独配? 如果所有引擎都往同一个 Syslog 服务器 IP 发,多台引擎的日志混在一起难以区分来源。每台引擎可配置不同的 Syslog 标签(Tag),外部日志平台据此区分来源。

开启或关闭日志

配置项说明
Syslog 开关开启后日志以 Syslog 协议外发,同时内置日志中心不再记录
日志类型四类可选:健康检查错误日志、负载均衡错误日志、业务访问日志、配置错误日志
协议/ IP / 端口Syslog 服务器地址和接收端口
标签(Tag)自定义标签,如 engine-A-n6,用于在外部日志平台区分来源

自定义上报字段

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

开启 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"之外的原因显著增多(如大量超时),说明有请求在消耗 Token 但未完成
  6. 切换到"模型推理组访问时延" → 如果 P95/P99 时延显著升高,可能导致用户频繁重试(重试 = 重复消耗 Token)

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

排查步骤:

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

日志相关限制与注意事项

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

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