サービスパターン自動発見ガイド
ネットワーク/DB接続テレメトリ(netstat、DB接続)から実際に観測されたアプリケーション・プロセスの一覧を表示し、ワンクリックでNormal Serviceパターンとして有効化・無効化できる管理者画面です。
📋 概要
サービスパターン自動発見(Auto-Discovery) ページは、giipAgentが収集したネットワーク接続(netstat)とDB接続(db_connections)のテレメトリから実際に観測されたプログラム/プロセス名を集計して表示します。既にNormal Service Patternsページに登録済みのパターンかどうかを示し、未登録の項目はワンクリックでパターンとして追加できます。この画面で有効化したパターンは、Network Topology(sql3d)画面で該当クライアントを**シアン(スカイブルー)**で表示するために使われます。
⚠️ この画面は管理者専用です。 アクセスには
uLevel >= 50が必要です(コードに直接指定されたpropモードの値)。それ未満のユーザーはホームへリダイレクトされます。
🔍 画面構成
1. 上部ヘッダー
- ページタイトル: 「✨ Auto-Discovery: Service Patterns」。
- 発見されたアプリケーションは実際のインフラのネットワーク/DB接続から得られたものであり、Enable をクリックするとNormal Serviceパターンとして追加される旨の説明。
2. コマンドバー
| 要素 | 説明 |
|---|---|
| 🔄 Refreshボタン | サーバーから発見一覧を再取得します。 |
| 検索ボックス | pattern_value(アプリケーション/プロセス名)でリアルタイムに一覧を絞り込みます。 |
| 📋 Manage Patternsボタン | /admin/service-patternsページへ移動し、登録済みパターンを直接管理します。 |
3. 発見一覧テーブル
| 列 | 説明 |
|---|---|
| Application/Process | 観測されたプログラム名(program)またはプロセス名(process) |
| Type | program(DB接続で観測)またはprocess(netstatで観測)バッジ |
| Seen Count | 観測回数(occurrence_count) |
| Status | ✅ Pattern(登録済み)またはNot enabled(未登録) |
| Action | 未登録ならEnable、登録済みならDisableボタン |
テーブル下部に発見総数と、そのうち有効化(登録)済みの件数が表示されます。
🛠️ パターンの有効化/無効化方法
- 一覧から目的のアプリケーション/プロセスを探します(検索ボックスで絞り込み可能)。
- 未登録(Not enabled) の項目なら Enable ボタンをクリックします — 現在のプロジェクト(csn)スコープのNormal Serviceパターンとして即座に追加されます。
- 登録済み(✅ Pattern) の項目なら Disable ボタンをクリックします — 該当パターンを無効化(ソフトデリート)します。
- 処理中はすべてのEnable/Disableボタンが一時的に無効になり、完了すると上部に成功メッセージが表示され、一覧が自動的に再読み込みされます。
- 条件: Disableはこの画面から登録された(同じcsn所有の)パターンにのみ実行できます。グローバルパターン(csn=0)や他プロジェクト所有のパターンはManage Patternsページの権限ルールに従います。
💡 参考
- 発見データは直近30分以内に収集された
tKVS(netstat/db_connections)レコードを優先的に使用します。直近30分間に収集されたデータが全くない場合(新規プロジェクト、エージェント未インストール、テスト環境など)、時間制限なしに最新50件を代わりに表示します(フォールバック)。 - 一覧には
unknown、System、Idleなどの無意味な値は含まれません。 - 発見一覧は対象csnに属するサーバー(
tLSvr.CSn)から収集されたデータのみを集計します。サーバーにgiipAgentがインストールされ、netstat/DB接続テレメトリを送信している必要があります。 - Enable/Disableはgiipfaw(Azure Function)→SQL Server経由で即座に反映され、完了後に一覧が自動的に再読み込みされます。
API参照
このページは3つのディスパッチコマンド(fetchAzureCommand 経由)でバックエンドと通信します。別途APIガイドがないため、要点をここに記載します。
| コマンド | 用途 | 主なパラメータ |
|---|---|---|
Net3dServicePatternDiscovery | tKVS netstat/db_connectionsから発見されたプログラム/プロセス一覧を取得(登録状況を含む) | csn |
Net3dServicePatternPut | 発見された項目をNormal Serviceパターンとして登録(有効化) | csn、nspId(新規は0)、pattern_type、pattern_value、display_name |
Net3dServicePatternDelete | 登録済みパターンを無効化(ソフトデリート) | csn、nspId |
- 3つのコマンドすべてが
RstValステータスフィールドを含んで応答することがあります。RstVal = 200は成功、RstVal = 401は認証失敗(セッション期限切れ)、RstVal = 403は当該プロジェクトへの権限なしを意味します。 Net3dServicePatternDiscoveryの正常応答は、pattern_value、pattern_type、occurrence_count、is_registered、nspIdフィールドを持つ行の配列です。結果が1件のみの場合、バックエンド(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/DB接続テレメトリが収集されていない | サーバーにgiipAgentがインストール・実行中か確認し、データ収集後に再試行してください。 |
| 新しい項目が表示されない | 直近30分のデータがなく、フォールバック(最新50件)のみ表示中 | 正常な動作です。直近30分以内にデータが蓄積されると、その範囲に切り替わります。 |
| 上部のガイドボタン(📖)が表示されない | ガイドマッピングの未登録(旧バージョンのデプロイ) | このガイドがデプロイ・インデックスされると表示されます。 |
バージョン: 1.0
最終更新: 2026-08-07
ソースファイル: giipv3/public/help/service-patterns-discovery.ja.md