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 Unauthorized | x-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 字符串后再发送 |