giip
SES案件登録
7分で読了

サービスパターン自動発見ガイド

ネットワーク/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)
Typeprogram(DB接続で観測)またはprocess(netstatで観測)バッジ
Seen Count観測回数(occurrence_count)
Status✅ Pattern(登録済み)またはNot enabled(未登録)
Action未登録ならEnable、登録済みならDisableボタン

テーブル下部に発見総数と、そのうち有効化(登録)済みの件数が表示されます。

🛠️ パターンの有効化/無効化方法

  1. 一覧から目的のアプリケーション/プロセスを探します(検索ボックスで絞り込み可能)。
  2. 未登録(Not enabled) の項目なら Enable ボタンをクリックします — 現在のプロジェクト(csn)スコープのNormal Serviceパターンとして即座に追加されます。
  3. 登録済み(✅ Pattern) の項目なら Disable ボタンをクリックします — 該当パターンを無効化(ソフトデリート)します。
  4. 処理中はすべてのEnable/Disableボタンが一時的に無効になり、完了すると上部に成功メッセージが表示され、一覧が自動的に再読み込みされます。
  5. 条件: Disableはこの画面から登録された(同じcsn所有の)パターンにのみ実行できます。グローバルパターン(csn=0)や他プロジェクト所有のパターンはManage Patternsページの権限ルールに従います。

💡 参考

  • 発見データは直近30分以内に収集されたtKVS(netstat/db_connections)レコードを優先的に使用します。直近30分間に収集されたデータが全くない場合(新規プロジェクト、エージェント未インストール、テスト環境など)、時間制限なしに最新50件を代わりに表示します(フォールバック)。
  • 一覧にはunknownSystemIdleなどの無意味な値は含まれません。
  • 発見一覧は対象csnに属するサーバー(tLSvr.CSn)から収集されたデータのみを集計します。サーバーにgiipAgentがインストールされ、netstat/DB接続テレメトリを送信している必要があります。
  • Enable/Disableはgiipfaw(Azure Function)→SQL Server経由で即座に反映され、完了後に一覧が自動的に再読み込みされます。

API参照

このページは3つのディスパッチコマンド(fetchAzureCommand 経由)でバックエンドと通信します。別途APIガイドがないため、要点をここに記載します。

コマンド用途主なパラメータ
Net3dServicePatternDiscoverytKVS netstat/db_connectionsから発見されたプログラム/プロセス一覧を取得(登録状況を含む)csn
Net3dServicePatternPut発見された項目をNormal Serviceパターンとして登録(有効化)csnnspId(新規は0)、pattern_typepattern_valuedisplay_name
Net3dServicePatternDelete登録済みパターンを無効化(ソフトデリート)csnnspId
  • 3つのコマンドすべてがRstValステータスフィールドを含んで応答することがあります。RstVal = 200は成功、RstVal = 401は認証失敗(セッション期限切れ)、RstVal = 403は当該プロジェクトへの権限なしを意味します。
  • Net3dServicePatternDiscoveryの正常応答は、pattern_valuepattern_typeoccurrence_countis_registerednspIdフィールドを持つ行の配列です。結果が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