giip
SES 商机登记
5分钟阅读

服务模式自动发现指南

这是一个管理员界面,用于展示从网络/数据库连接遥测数据(netstat、数据库连接)中实际观察到的应用程序和进程,并可一键将其启用或禁用为 Normal Service 模式

✨ 前往服务模式自动发现页面 →

📋 概述

服务模式自动发现(Auto-Discovery) 页面汇总了 giipAgent 采集的网络连接(netstat)和数据库连接(db_connections)遥测数据中实际观察到的程序/进程名称。它会标示每一项是否已在 Normal Service Patterns 页面中注册,未注册的项目可一键添加为模式。在此页面启用的模式将用于在 Network Topology(sql3d)页面中把匹配的客户端显示为青色(天蓝色)

⚠️ 此页面仅限管理员使用。 访问需要 uLevel >= 50(代码中硬编码的 prop 模式值)。低于该等级的用户会被重定向到首页。

🔍 页面结构

1. 顶部标题栏

  • 页面标题: "✨ Auto-Discovery: Service Patterns"。
  • 说明文字: 发现的应用程序来自基础设施中实际的网络/数据库连接,点击 Enable 即可将其添加为 Normal Service 模式。

2. 命令栏

元素说明
🔄 Refresh 按钮从服务器重新加载发现列表。
搜索框pattern_value(应用程序/进程名称)实时筛选列表。
📋 Manage Patterns 按钮跳转到 /admin/service-patterns 页面直接管理已注册模式。

3. 发现列表表格

说明
Application/Process观察到的程序名(program)或进程名(process)
Typeprogram(来自数据库连接)或 process(来自 netstat)标签
Seen Count观察到的次数(occurrence_count)
Status✅ Pattern(已注册)或 Not enabled(未注册)
Action未注册显示 Enable,已注册显示 Disable 按钮

表格底部显示发现总数以及其中已启用(已注册)的数量。

🛠️ 如何启用/禁用模式

  1. 在列表中找到目标应用程序/进程(可用搜索框缩小范围)。
  2. 若显示 未注册(Not enabled),点击 Enable — 会立即将其添加为当前项目(csn)范围内的 Normal Service 模式。
  3. 若显示 已注册(✅ Pattern),点击 Disable — 将该模式停用(软删除)。
  4. 请求处理期间,所有 Enable/Disable 按钮会暂时禁用;完成后顶部会显示成功消息,列表会自动刷新。
  5. 条件: Disable 仅适用于从此页面注册的(同一 csn 拥有的)模式。全局模式(csn=0)或其他项目拥有的模式需遵循 Manage Patterns 页面的权限规则。

💡 说明

  • 发现数据优先使用最近 30 分钟内采集的 tKVS(netstat/db_connections)记录。如果该时间段内完全没有采集到数据(例如新项目、未安装代理、测试环境),页面会不限时间地改为显示最近 50 条记录作为回退。
  • 列表会排除 unknownSystemIdle 等无意义的值。
  • 发现列表仅汇总属于目标 csn 的服务器(tLSvr.CSn)的数据。服务器必须安装 giipAgent 并发送 netstat/数据库连接遥测数据,其进程才会出现在此列表中。
  • Enable/Disable 通过 giipfaw(Azure Function)→ SQL Server 立即生效,操作完成后列表会自动刷新。

API 参考

此页面通过三个派发命令(经由 fetchAzureCommand)与后端通信。由于没有单独的 API 指南,核心内容记录如下。

命令用途主要参数
Net3dServicePatternDiscovery列出从 tKVS netstat/db_connections 发现的程序/进程(含注册状态)csn
Net3dServicePatternPut将发现的项目注册为 Normal Service 模式(启用)csnnspId(新建为 0)、pattern_typepattern_valuedisplay_name
Net3dServicePatternDelete停用已注册模式(软删除)csnnspId
  • 三个命令都可能在响应中包含 RstVal 状态字段。RstVal = 200 表示成功,RstVal = 401 表示鉴权失败(会话过期),RstVal = 403 表示对该项目无权限。
  • Net3dServicePatternDiscovery 成功时返回包含 pattern_valuepattern_typeoccurrence_countis_registerednspId 字段的行数组。当结果恰好只有一行时,由于后端(PowerShell ConvertTo-Json)的特性,可能返回单个对象而非数组——客户端会对此进行归一化处理。

故障排查

症状原因解决方法
访问后立即被重定向到首页uLevel 低于 50请使用管理员账号(等级 50+)登录。
"Unexpected token '<' ... is not valid JSON" 错误(2026-08-07 之前)前端调用了一个从未存在过的 Next.js API 路由(/api/service-patterns/discovery)——已在 giip-issue #938 中修复为直接调用 fetchAzureCommand当前部署不应再出现此问题。若仍出现,请确认部署版本是否为最新。
"Unauthorized" 错误消息会话令牌过期或缺失请重新登录后点击 Refresh。
"No applications discovered yet."目标项目(csn)所属服务器近期没有 netstat/数据库连接遥测数据请确认服务器已安装并运行 giipAgent,采集到数据后重试。
没有出现新项目最近 30 分钟内无数据,正在回退显示最近 50 条记录属正常行为。一旦最近 30 分钟内积累了数据,页面会切换到该范围。
顶部指南按钮(📖)不显示指南映射缺失(旧版本部署)该指南部署并建立索引后即会显示。

版本: 1.0 最后更新: 2026-08-07 源文件: giipv3/public/help/service-patterns-discovery.zh-CN.md