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 字串後再發送 |