第 19 章 日志中心
日志中心下设七个页面:SIP 日志、运行日志、调度日志(见 18.7)、登录日志、操作日志、定时任务日志、播放日志。本章说明排障最常用的 SIP 日志、运行日志、播放日志,以及系统类日志。
19.1 SIP 日志
路由 /gb28181/sip-traces。用于查看 SIP 原始信令,是排查「注册失败」「点播卡住」「回放失败」的第一现场。
所需权限:查看 gb28181:sip:trace:view;下载 gb28181:sip:trace:export。
19.1.1 前置条件
SIP 日志默认关闭。需先在「国标服务配置 → 国标相关 → 是否开启 SIP 日志」中开启。未开启时页面显示引导:
「SIP 日志当前处于关闭状态」+「开启后系统会采集 SIP 原始信令并写入 Trace 存储,用于排查注册失败、点播卡住等问题。关闭期间不会产生任何日志数据。」+ 按钮「去国标服务配置开启」。
19.1.2 页面结构
| 区域 | 内容 |
|---|---|
| 页标题 | 「SIP 日志」+ 健康徽标 + 「最后写入 {时间}」 |
| 视图切换 | 「表格」/「终端」 |
| 「实时」复选框 | 仅表格视图可用 |
| 统计卡 | 「全部会话」「异常会话」「注册失败」「点播卡住」;点击切换过滤(scope) |
| 筛选区 | 时间范围 + 时间窗、搜索、失败类型、业务类型 |
| 列表/终端 | 会话列表或滚动终端 |
健康徽标:「采集正常」(绿)/「存储降级」(橙)/「未启用」(灰)。降级时提示「诊断数据可能不完整,原始 SIP 报文仍可查看」。
19.1.3 筛选条件
| 条件 | 选项 | 默认 |
|---|---|---|
| 时间范围 | 区间选择 | — |
| 时间窗 | 「最近 5 分钟」「最近 10 分钟」「最近 30 分钟」「最近 1 小时」「自定义」 | 最近 5 分钟 |
| 搜索 | 设备 ID、名称或 Call-ID | 空 |
| 失败类型 | 诊断码,见 19.1.6 | 空 |
| 业务类型 | 23 项,见下表 | 空 |
业务类型全集:注册、心跳保持、传输保活、目录查询、设备信息、设备状态、设备控制、报警、云台控制、实时点播、录像查询、回放、下载、配置查询、回放控制、语音对讲、语音广播、移动位置、订阅/通知、会话确认、挂断、STUN 探测、未知业务。
地址栏支持 deviceIds、callId、from/to 参数预填,传入时自动切为自定义时间区间。
19.1.4 会话列表
| 列 | 说明 |
|---|---|
| 「#」 | 序号 |
| 「业务类型」 | 见上 |
| 「起始方法」 | REGISTER/INVITE/MESSAGE 等 |
| 「From 国标 ID」 | 发起方 |
| 「To 国标 ID」 | 接收方 |
| 「Source」 | 源地址 |
| 「Destination」 | 目的地址 |
| 「报文数」 | 该会话报文条数 |
| 「起止时间」 | 时间范围 |
| 「时长」 | 持续时长 |
| 「状态」 | 见下表 |
会话状态:
| 状态 | 颜色 | 判定条件 |
|---|---|---|
| 诊断名(如「摘要认证失败」) | 红(注册失败)/ 橙(其他) | 存在明确诊断结论 |
| 「认证挑战」 | 蓝 | REGISTER 且收到 401 |
| 「进行中」 | 蓝 | INVITE 且最终状态 < 200 或为 100 |
| 「异常 {code}」 | 红 | 状态码 ≥ 400 |
| 「完成」 | 绿 | 2xx |
| 「未知」 | 灰 | 其他 |
19.1.5 会话详情
点击某行进入「会话详情」:
| 区域 | 内容 |
|---|---|
| 顶部 | 「返回列表」、「复制 Call-ID」、场景标签 + #{callId前8}-hash + 状态 |
| 诊断摘要 | 「{阶段}阶段」、「实时判定」或「历史证据保守回算」、「CSeq {n}」 |
| 元信息 | Call-ID、关联设备、时间范围、持续时间、报文统计(「N 条」+「入 X · 出 Y」)、业务类型、From→To |
| 时序图 | 设备 ↔ 平台两泳道 |
19.1.6 诊断码
| 诊断码 | 含义 | 常见原因 |
|---|---|---|
| 「摘要认证失败」 | 密码不一致 | 设备与平台 SIP 密码不同 |
| 「Nonce 无效」 | 认证随机数错误 | 设备实现不标准 |
| 「Nonce 已过期」 | 认证超时 | 设备时间偏差大或响应慢 |
| 「Nonce 重放」 | 重复使用随机数 | 设备重发机制异常 |
| 「平台 ID 不匹配」 | 注册的服务器 ID 错误 | 设备端填错平台 ID |
| 「设备未预分配」 | 预分配模式下未登记该设备 | 关闭预分配或先创建设备 |
| 「注册请求无效」 | 报文格式不合规 | 设备实现问题 |
| 「平台内部错误」 | 平台处理异常 | 联系管理员 |
| 「注册超时」 | 无应答 | 网络不通或端口被拦 |
| 「注册失败(待判断)」 | 无法归类 | 查报文详情 |
| 「信令响应超时」 | 命令无应答 | 设备离线或丢包 |
| 「信令成功,媒体未就绪」 | 信令 200 但无 RTP | 收流端口不可达、设备未送流 |
19.1.7 报文详情
在会话详情中点击某条报文,右侧「报文详情」区展示:
- 标题「报文详情 · CSeq {n} {method}」
- 按钮「上一条」「下一条」「复制原文」
- 页签:「结构化」(起始行、头部字段 + 计数、正文)、「原文」、「SDP」、「XML」
- 空态「选中报文后查看详情」
19.1.8 终端视图
切换「终端」后进入滚动终端:
- 头部:「sip-trace.log — {n} messages · IN {n} · OUT {n}」+「LIVE」/「PAUSED」
- 空态:「$ tail -f sip-trace.log」+「# 等待报文流入…」
- 底部:「$ sip-trace-daemon –filter port=5060 –format=raw」+「滚动到底部恢复自动跟随 · 缓冲区保留最近 500 条」
- 按钮:「暂停」「恢复」「回到底部」、清空、下载
19.1.9 导出
点击下载按钮,导出 sip-trace-{ISO时间}.log。需 gb28181:sip:trace:export。
19.1.10 分页与显示范围
| 项目 | 显示方式 |
|---|---|
| 会话列表 | 每批加载 100 条,滚动到底继续加载;不再固定只展示 200 条 |
| 会话查询 | 按所选时间窗查询,不再设置会话条数硬上限 |
| 单会话报文 | 当前一次最多获取 500 条报文,需结合时间范围查看 |
| 终端缓冲 | 最近 500 条 |
注意 - SIP 日志包含设备密码摘要、Call-ID、内网地址等敏感信息,导出文件请按内部资料管理。 - 开启 SIP 日志会增加磁盘写入与 CPU 开销,长期开启需关注磁盘容量。排障结束后建议关闭。 - 「实时」模式通过 SSE 触发刷新,500 毫秒去抖;高频信令场景下页面可能略滞后,属正常。
界面如图 19-1 所示。

图 19-1 SIP 日志表格视图
界面如图 19-2 所示。

图 19-2 SIP 日志过滤条件
界面如图 19-3 所示。

图 19-3 终端视图
界面如图 19-4 所示。

图 19-4 会话详情
19.2 运行日志
路由 /system/realtime-log。实时查看后端控制台日志。
所需权限:gb28181:log:view。
19.2.1 页面结构
| 区域 | 内容 |
|---|---|
| 页标题 | 「运行日志」+ 连接状态标签 + 「当前实例 {instanceId}」+ 右侧「缓冲 N 条」「丢弃 N 条」 |
| 筛选区 | 「关键词」「级别」「筛选模块 / component」+「重新连接」「重置筛选」 |
| 终端区 | 滚动日志 |
连接状态:「未连接」(灰)「连接中」(橙)「已连接」(绿)「重连中」(橙)「连接受限」(红)「鉴权失效」(红)。
19.2.2 筛选
| 条件 | 说明 |
|---|---|
| 关键词 | 占位「搜索消息、事件或任意结构化字段」 |
| 级别 | 「全部级别」+ DEBUG/INFO/WARN/ERROR/DPANIC/PANIC/FATAL |
| 模块 | 占位按 component 过滤 |
19.2.3 终端操作
| 元素 | 说明 |
|---|---|
| 头部 | 「uvp-console.log — {可见}/{总数} lines」+「FOLLOW」/「PAUSED」 |
| 「暂停跟随」/「继续跟随」 | 切换自动滚动 |
| 清空 | 清空页面缓冲(悬停「清空页面缓冲」) |
| 下载 | 下载当前筛选结果,文件名 uvp-console-YYYYMMDD-HHmmss.log |
| 行内「复制此行纯文本」 | 复制该行 |
| 行内「复制此行完整 JSON」 | 复制结构化内容 |
| 行内「查看 SIP Trace」 | 仅当行内含 callId 时出现,跳转 SIP 日志 |
提示:「日志行已复制」「日志 JSON 已复制」「复制失败,请检查浏览器剪贴板权限」。
19.2.4 告警条
| 文案 | 含义 |
|---|---|
| 「服务实例已变化,已从新实例的内存快照恢复」 | 后端重启过 |
| 「日志存在缺口:{reason}」 | 缓冲溢出或连接中断 |
| 「连接已到期,请重新连接以刷新认证」 | 需重新连接 |
| 「登录或日志查看权限已失效,请重新登录」 | 需重新登录 |
重连退避:1 秒起,最长 30 秒。
空态:「$ tail -f uvp-console.log」+「# 当前筛选条件下没有匹配日志」或「# 等待控制台日志流入…」;底部说明「离开底部暂停跟随 · 滚到底部自动恢复 · 页面保留最近 2000 条」。
注意 - 页面只保留最近 2000 条。需要长期留存请下载。 - 「缓冲 / 丢弃」计数持续增长说明浏览器处理不过来,可缩小筛选范围或降低级别。
界面如图 19-5 所示。

图 19-5 运行日志
19.3 播放日志
路由 /gb28181/playback-log。记录每一次播放的完整生命周期,是排查「用户说点了播放没反应」的关键工具。
菜单权限:gb28181:play-log:view。
19.3.1 筛选
| 条件 | 说明 |
|---|---|
| 「设备编码」 | 文本 |
| 「通道编码」 | 文本 |
| 「Stream ID」 | 文本 |
| 「媒体状态」 | 字典 playback_media_state 全量项 |
| 「客户端状态」 | 字典 playback_client_state 全量项 |
| 时间范围 | 含时分,可清空 |
| 分页 | 10/20/50/100 |
19.3.2 表格列
| 列 | 说明 |
|---|---|
| 「开始时间」 | 等宽字体 |
| 「设备 / 通道」 | 上行设备码、下行通道码 |
| 「流 / 节点」 | Stream ID + 「节点 N」 |
| 「媒体状态」 | 着色标签 |
| 「客户端状态」 | 着色标签 |
| 「当前阶段」 | 阶段名 |
| 「原因码」 | 悬停显示 reasonMessage |
| 末列 | 眼睛图标「查看详情」 |
状态着色:
| 取值 | 颜色 |
|---|---|
ready、first_frame、confirmed、completed | 绿 |
failed、player_error | 红 |
in_progress | 蓝 |
stale_in_progress | 橙 |
| 其他 | 灰 |
19.3.3 播放生命周期抽屉
| 区块 | 字段 |
|---|---|
| 摘要 | 「生命周期 ID」「设备 / 通道」「媒体状态」「客户端状态」「播放生命周期」「当前阶段」「失败阶段」(有值才显示) |
| 时间线 | 事件名 + 事实状态标签 + 元信息(阶段/来源/时间)+ 原因(reasonCode · reasonMessage) |
失败时提示「播放日志详情暂时不可用」并自动关闭抽屉。
注意 - 「stale_in_progress」表示会话标记为进行中但长时间无更新,通常是异常退出留下的僵死记录。 - 事件名与状态文案来自字典,若显示为英文原值,说明字典项缺失,需在字典管理中补齐。
界面如图 19-6 所示。

图 19-6 播放日志
19.4 登录日志
路由 /system/login-log。用途:审计登录与锁定情况,解锁被锁账号。
所需权限:system:login-log:list;删除 :delete;清空 :clear;解锁 :unlock。
19.4.1 筛选
「用户名」「结果」(成功/失败)「失败原因」(字典 login_failure_reason)「IP 地址」「时间范围」。
19.4.2 表格列
「用户名」「结果」(成功绿/失败红)「失败原因」「IP 地址」「地点」「浏览器 / OS」「登录时间」「操作」。
操作为「详情」;当结果为失败、原因为 account_locked 且有对应用户时,额外显示「解锁」。
19.4.3 操作
| 按钮 | 位置 | 行为 | 确认 |
|---|---|---|---|
| 「清空日志」 | 搜索区右侧 | 清空全部登录日志 | 标题「清空登录日志」,正文「将清空当前数据库中已有的全部登录日志,删除后不可恢复。」 |
| 「删除」 | 批量条 | 删除选中 | 标题「删除登录日志」,正文「将删除选中的 N 条登录日志,删除后不可恢复。」 |
| 「解锁」 | 行操作 | 解除该账号锁定 | 标题「解锁账号」,正文「确认解锁账号”{用户名}“吗?」 |
| 「详情」 | 行操作 | 打开详情弹窗 | 无 |
详情弹窗字段:「用户名」「结果」「失败原因」「IP 地址」「地点」「浏览器 / OS」「用户代理」「登录时间」。
注意 - 账号被锁定后,即使密码正确也无法登录。解锁是唯一快捷恢复方式(或等待锁定时长自动过期)。 - 「清空日志」会删除全部历史,包括用于安全审计的记录。合规场景请先导出留档。
界面如图 19-7 所示。

图 19-7 登录日志
19.5 操作日志
路由 /system/log。记录管理类操作的审计轨迹。
所需权限:system:log:export、system:log:delete。
筛选:「用户名」「操作模块」「请求路径」「操作类型」(新增/更新/删除/查询/登录/登出/导出/导入)「状态」(成功/失败)「日期范围」。
表格列:「用户名」「操作模块」「操作类型」「请求方法」「请求路径」「IP地址」「状态码」「耗时(ms)」「操作时间」「操作」。
操作类型配色:新增绿、更新蓝、删除红、查询浅蓝、登录紫、登出橙、导出青、导入粉。 状态码 < 400 绿,否则红。耗时 > 1000ms 红,> 500ms 橙,其余绿。
| 按钮 | 行为 | 确认 | 提示 |
|---|---|---|---|
| 「导出」 | 导出当前条件结果 | 无 | — |
| 「删除」 | 删除选中的日志 | 「确定删除选中的日志吗?」 | — |
| 「详情」 | 打开「操作日志详情」 | 无 | — |
详情字段:ID、用户名、操作模块、操作类型、请求方法、请求路径、IP地址、用户代理、状态码、耗时、部门、操作时间、请求参数、响应数据、错误信息。
注意 - 「请求参数」与「响应数据」可能包含密码、密钥等敏感字段,导出前需脱敏处理。
界面如图 19-8 所示。

图 19-8 操作日志
19.6 定时任务日志
路由 /system/joblog。展示定时任务的每次执行结果。删除单条或勾选记录需 system:sysjobresults:delete;「一键清理」需 system:sysjobresults:clear。
「一键清理」会清空全部定时任务执行日志,不受当前筛选条件影响,且不可恢复。点击后阅读确认提示,再确认清理;它只清理执行结果,不会删除任务定义。
注意 - 该日志只记录执行结果,任务定义在「任务调度 → 任务管理」中维护(见 21.10)。
界面如图 19-9 所示。

图 19-9 定时任务日志
19.7 调度日志
路由 /media/scheduling。它与「流媒体管理 → 调度日志」是同一个页面、两个入口——从日志中心进,方便排障时不用切菜单。
筛选条件
| 条件 | 说明 |
|---|---|
| 开始日期 / 结束日期 | 日期区间,可留空表示不限 |
| 节点 | 「全部节点」或具体节点 |
| 策略 | 「全部策略」「轮询」「加权轮询」「最小负载」 |
| 调度状态 | 「全部调度状态」「已命中」「未命中」 |
| 业务流 StreamID | 文本,按流的 ID 精确查 |
按钮「查询」「重置」。
图表区
两张柱状图并排:「调度命中分布」(按小时统计命中次数)与「命中节点」(按节点统计)。右上可切「24 小时」「7 天」,默认 24 小时。
表格列
「时间」「策略」「命中节点」「业务流」(未命中时显示 —)「设备 / 通道」「调度状态」(已命中绿/未命中橙)「未命中原因」。底部分页显示「共 N 条调度日志」。
界面如图 19-10 所示。

图 19-10 调度日志
注意 - 「未命中」不等于点播失败:它表示这一次路由决策没选到节点,平台会重试;连续大量未命中才需要查「未命中原因」。 - 一次点播可能产生多条记录(每次路由决策一条),所以这里条数比「播放日志」多。 - 该页与 18.7 内容一致,本节只讲「从日志中心怎么看」,字段定义参见 18.7。
19.8 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| SIP 日志页面提示未启用 | 系统配置中 SIP 日志开关关闭 | 去「国标服务配置」开启 |
| SIP 日志只有最近几分钟 | 时间窗默认「最近 5 分钟」 | 切换为更长时间窗或自定义 |
| 会话状态全是「未知」 | 报文不足以判定 | 查看报文详情逐条核对 |
| 运行日志频繁「重连中」 | 后端重启或网络抖动 | 观察是否自愈;持续则检查服务 |
| 播放日志查不到某次播放 | 时间范围不含、或该次播放未建立会话 | 放宽时间范围 |
| 登录日志「地点」为空 | IP 库未配置或为内网地址 | 属正常,内网 IP 无归属地 |