giip
SES 商机登记
2分钟阅读

KB Management API 用户指南

本文档介绍如何使用 API 通过外部脚本(如 giipAgentWin)管理知识库 (KB) 系统。

🔌 前往知识库管理 →

1. 概述

通过调用 KB API (giipKb),您可以存储和查询特定服务器 (lssn) 或数据库 (mdb_id) 的故障应对经验、配置信息等。

2. 基本信息

  • 接口地址 (Endpoint): https://giipfaw.azurewebsites.net/api/giipKb
  • 身份验证: 必须通过 x-api-key 请求头传递会话令牌 (AK/SK)。

3. 功能说明 (Endpoints)

3.1 注册 KB (POST)

注册新的知识文档。

请求载荷 (JSON):

{
  "csn": 100,
  "refType": "LSSN", 
  "lssn": 1234,
  "title": "服务器内核优化指南",
  "content": "# 指南\n如何修改内核参数...",
  "tags": "kernel,tuning,linux"
}
  • refType: 可选 LSSN (服务器), MDB (数据库), GENERAL (通用)

3.2 修改 KB (PUT)

修改现有的知识文档。

请求载荷 (JSON):

{
  "kbSn": 42,
  "title": "修改后的标题",
  "content": "更新后的内容...",
  "tags": "linux,updated"
}

3.3 查询 KB (GET)

查询符合过滤条件的 KB 列表或详细信息。

查询参数:

  • kbSn: 查询特定文档时使用
  • lssn: 查询与特定服务器相关的知识
  • mdb_id: 查询与特定数据库相关的知识
  • searchKeyword: 搜索关键词

3.4 删除 KB (DELETE)

删除知识文档。

查询参数:

  • kbSn: 要删除的文档编号

4. 基于 SK 的 API 使用方法 (建议 giipAgent 使用)

对于像 giipAgent 这样的常驻程序或自动化脚本,建议使用没有会话过期的安全密钥 (SK)。基于 SK 的调用通过集成 API 端点 (giipApiSk3) 进行。

  • 接口地址 (Endpoint): https://giipfaw.azurewebsites.net/api/giipApiSk3
  • 请求方法: POST (form-urlencoded)

4.1 主要参数

  • sk: 已颁发的安全密钥 (Secret Key)
  • text: 要执行的命令 (可选 KbCreate, KbUpdate, KbDelete, KbGet, KbList)
  • jsondata: 传递给 API 的详细数据 (JSON 字符串)

4.2 调用示例 (PowerShell)

$sk = "YOUR_SECRET_KEY"
$url = "https://giipfaw.azurewebsites.net/api/giipApiSk3"

# 注册 KB 示例
$body = @{
    sk = $sk
    text = "KbCreate jsondata"
    jsondata = (@{
        csn = 100
        refType = "LSSN"
        lssn = 1234
        title = "Agent 自动注册知识"
        content = "这是从 Agent 自动分析的内容。"
        tags = "agent,auto"
    } | ConvertTo-Json -Compress)
}

$response = Invoke-RestMethod -Uri $url -Method Post -Body $body
Write-Host "KB Registered. kbSn: $($response.data[0].kbSn)"

5. giipAgentWin 自动化示例 (基于 AK)

是在 giipAgentWin 脚本中将已完成的任务日志通过 AK 自动注册为 KB 的示例(当登录会话有效时)。

$ak = "YOUR_SESSION_AK"
$url = "https://giipfaw.azurewebsites.net/api/giipKb"

$body = @{
    title = "自动化分析结果 - $(Get-Date -Format 'yyyyMMdd')"
    content = "# 分析结果`n环境检查已完成。"
    refType = "LSSN"
    lssn = 1201
    csn = 0
    tags = "auto,diag"
} | ConvertTo-Json -Compress

$headers = @{
    "x-api-key" = $ak
    "Content-Type" = "application/json"
}

$response = Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $body
Write-Host "KB Registered. kbSn: $($response.kbSn)"

[!TIP] 您可以在 giipv3 前端的服务器/数据库详情页面中立即查看通过此 API 注册的内容。


故障排除

症状原因解决
返回 401 Unauthorizedx-api-key 请求头中没有有效的 AK/SK 令牌,或会话已过期在请求头中放入有效令牌,或切换到无会话过期的基于 SK 的 giipApiSk3 调用
SK 调用时命令未执行text 字段不是 KbCreate jsondata 格式text 中准确填写命令(KbCreate/KbUpdate/KbDelete/KbGet/KbList)和 jsondata 关键词
注册/修改时数据缺失refType 不是 LSSN/MDB/GENERAL 之一,或缺少 kbSn仅使用允许的三个 refType 值之一,并为 PUT/DELETE 指定有效的 kbSn
jsondata 解析错误content 中的换行或引号未转义使用 ConvertTo-Json -Compress 等序列化为 JSON 字符串后再发送