KB Management API ユーザーガイド
本ドキュメントは、外部スクリプト(giipAgentWinなど)からナレッジベース(KB)システムを管理するためのAPI使用方法を案内します。
1. 概要
KB API(giipKb)を呼び出すことで、特定のサーバー(lssn)またはデータベース(mdb_id)に関する障害対応のノウハウ、設定情報などを保存および照会できます。
2. 基本情報
- エンドポイント:
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(DB)、GENERALから選択
3.2 KB修正 (PUT)
既存のナレッジドキュメントを修正します。
ペイロード (JSON):
{
"kbSn": 42,
"title": "修正後のタイトル",
"content": "アップデートされた内容...",
"tags": "linux,updated"
}
3.3 KB照会 (GET)
フィルタ条件に一致するKBリストまたは詳細情報を照会します。
クエリパラメータ:
kbSn: 特定のドキュメントを照会する際に使用lssn: 特定のサーバーに関連するナレッジを照会mdb_id: 特定のDBに関連するナレッジを照会searchKeyword: 検索キーワード
3.4 KB削除 (DELETE)
ナレッジドキュメントを削除します。
クエリパラメータ:
kbSn: 削除するドキュメント番号
4. SKベースAPIの使用方法 (giipAgent推奨)
giipAgentのような常駐型プログラムや自動化スクリプトでは、セッションの有効期限がないSecret Key(SK)を使用することが推奨されます。SKベースの呼び出しは、統合APIエンドポイント(giipApiSk3)を通じて行われます。
- エンドポイント:
https://giipfaw.azurewebsites.net/api/giipApiSk3 - メソッド:
POST(form-urlencoded)
4.1 主要パラメータ
sk: 発行されたSecret Keytext: 実行するコマンド (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 = "エージェントで自動的に分析された内容です。"
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で自動登録する例です(ログインセッションが有効な場合)。
$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フロントエンドのサーバー/DB詳細ページで、この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 の3値のみを使用し、PUT/DELETEには有効な kbSn を指定 |
jsondata パースエラー | content 内の改行・引用符がエスケープされていない | ConvertTo-Json -Compress などでJSON文字列にシリアライズしてから送信 |