Keycloak の監視

「 Instana 」の「 Keycloak 」センサーを使用して、 Keycloak 環境を監視できます。 Instana ホストエージェントをインストールすると、エージェントは自動的に Keycloak センサーを展開し、リアルタイムのメトリクスを収集します。 Instana のUIでメトリクスを確認できます。

Keycloak センサーは、パフォーマンス指標、ユーザーイベント、健全性監視など、 Keycloak 環境の包括的な監視機能を提供します。

サポート情報

Keycloak センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:

対応バージョンとサポート方針

以下の表は、最新のサポート対象バージョンとサポート方針を示しています:

表 1. 最新対応バージョンおよびサポート方針
テクノロジー サポート・ポリシー 最新バージョン サポートされる最新バージョン
Keycloak ( Quarkus ベース) オンデマンド 26.5 26.5

サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。

Keycloak の監視設定

エージェントをインストールすると、 Keycloak センサーはデフォルトで有効になります。 Keycloak の監視を開始するには、 Keycloak で必要な設定を有効にしてください。

Keycloak でのメトリクスとヘルスモニタリングの有効化

Keycloak からパフォーマンス指標、ユーザーイベント、およびヘルス指標を収集するには、以下のコマンドライン引数または ` K8s ` 環境変数が設定されていることを確認してください。

表 2. Keycloak のメトリクス収集を有効にするためのコマンドラインと環境変数
CLI オプションまたは環境変数
--metrics-enabled/ KC_METRICS_ENABLED true
--event-metrics-user-tags / KC_EVENT_METRICS_USER_TAGS realmまたはclientId
--health-enabled/ KC_HEALTH_ENABLED true
--event-metrics-user-events / KC_EVENT_METRICS_USER_EVENTS loginlogoutclient_loginrefresh_tokenregister、 または code_to_token

詳細については、『 Keycloak ユーザーイベント』のドキュメントを参照してください。

オプション:ポーリングレートの設定

次の例に示すように、エージェント configuration.yaml ファイル (*instanaAgentDir*/etc/instana/configuration.yaml) 内の poll_rate パラメータを使用して、 Instana が Keycloak からデータやメトリクスを収集するためにポーリングを行う頻度を設定できます

com.instana.plugin.keycloak:
  enabled: true # Default value is true
  poll_rate: 1 # values are in seconds. Default value is 1 second.
注: 特定のポーリング間隔が指定されていない場合、デフォルトのポーリング間隔は1秒となります。

メトリックの表示

メトリクスを表示するには、 Instana のUIにあるナビゲーションメニューから 「Infrastructure」 を選択し、監視対象の特定のホストをクリックします。すると、収集されたすべてのメトリクスと監視対象のプロセスが表示されたホストダッシュボードが表示されます。

注: メトリクスは、 Prometheus センサーを通じて収集することも可能です。 収集したメトリクスを使用して、カスタムダッシュボードを作成できます。

Keycloak センサーは、以下のパフォーマンス指標を収集します:

パフォーマンス・メトリック

Keycloak インスタンスから、以下のメトリクスが収集されます:

表 3. 収集されたパフォーマンス指標
パフォーマンス・メトリック 説明 メトリック名 ユニット
ユーザーイベント指標 タグ: realm, client_id, event, または が付いたユーザーイベントの発生を追跡します error keycloak.user
HTTP Server メトリクスのリクエスト タグ(uri, method, status, または outcome)を持つURIに対して /realms/{realm}/protocol/{protocol}、処理されたリクエストの所要時間を測定します http.server.requests ミリ秒

ユーザーイベントの指標

Keycloak ユーザーイベントはタグを使用して収集・分類され、その結果得られたデータは Instana のUI上でグラフとして表示されます。

表 4. ユーザーイベント指標
データ・ポイント タグによるフィルター タグで分類 説明
成功したログイン event=login および error="" ログインに成功した回数
ログイン試行 イベント=login ログイン試行の総数
失敗したログイン試行 event=login と error!="" ログイン試行失敗の回数
成功したクライアント・ログイン event=login および error="" client_id クライアントIDごとのログイン成功回数
失敗したクライアント・ログイン event=login と error!="" client_id クライアントIDごとのログイン失敗回数
成功したレルム・ログイン event=login および error="" realm レルムごとのログイン成功回数
失敗したレルム・ログイン event=login と error!="" realm レルムごとのログイン失敗回数
ログイン・エラー event=login と error!="" error エラー種別別のログイン失敗イベント
登録エラー event=register と error!="" error エラーの種類別ユーザー登録
リフレッシュ・トークン event=refresh_token および error="" client_id クライアントIDごとのリフレッシュトークン要求数
リフレッシュトークンのエラー event=refresh_token と error!="" client_id クライアントIDごとのリフレッシュトークンエラー数
登録のお申し込み event=register および error="" realm レルムごとの登録リクエスト数
登録エラー event=register と error!="" realm レルムごとの登録エラー数
トークンリクエストのコード event=code_to_token および error="" client_id クライアントIDごとの認証コードからトークンへの交換リクエスト数
コードからトークンへの変換エラー event=code_to_token と error!="" client_id クライアントIDごとのコードからトークンへの交換失敗件数
上位5つのクライアント - client_id クライアントIDトップ5
上位5つのレルム - realm 上位5つのレルム

HTTP Server メトリクスの取得

HTTP Server のリクエストメトリクスは、UI上で次のように算出されます:

表 5. HTTP Server メトリクスの取得
データ・ポイント タグによるフィルター タグで分類 説明
エラー分布の取得( 4xx または 5xx ) status=4xx または 5xx status リクエストエラーの分布
URI別の要求期間 - uri URI別リクエスト所要時間のトップ5(ミリ秒単位)

健康指標

Keycloak その /health エンドポイントを通じて、サーバーの実行準備状況や可用性を示すヘルス指標を提供します。 通常、以下の指標が収集されます:

表 6. 健康指標
ヘルス・チェック 説明
全体的な健康状態 Keycloak インスタンスの全体的な状態
データベース接続 Keycloak がデータベースに接続できるかどうかを示します
クラスターの正常性 Keycloak クラスタノードの状態およびノード間通信