Keycloak の監視
「 Instana 」の「 Keycloak 」センサーを使用して、 Keycloak 環境を監視できます。 Instana ホストエージェントをインストールすると、エージェントは自動的に Keycloak センサーを展開し、リアルタイムのメトリクスを収集します。 Instana のUIでメトリクスを確認できます。
Keycloak センサーは、パフォーマンス指標、ユーザーイベント、健全性監視など、 Keycloak 環境の包括的な監視機能を提供します。
サポート情報
Keycloak センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:
対応バージョンとサポート方針
以下の表は、最新のサポート対象バージョンとサポート方針を示しています:
| テクノロジー | サポート・ポリシー | 最新バージョン | サポートされる最新バージョン |
|---|---|---|---|
| Keycloak ( Quarkus ベース) | オンデマンド | 26.5 | 26.5 |
サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。
Keycloak の監視設定
エージェントをインストールすると、 Keycloak センサーはデフォルトで有効になります。 Keycloak の監視を開始するには、 Keycloak で必要な設定を有効にしてください。
Keycloak でのメトリクスとヘルスモニタリングの有効化
Keycloak からパフォーマンス指標、ユーザーイベント、およびヘルス指標を収集するには、以下のコマンドライン引数または ` K8s ` 環境変数が設定されていることを確認してください。
| 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 | login、 logout、 client_login、 refresh_token、 register、 または 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.
メトリックの表示
メトリクスを表示するには、 Instana のUIにあるナビゲーションメニューから 「Infrastructure」 を選択し、監視対象の特定のホストをクリックします。すると、収集されたすべてのメトリクスと監視対象のプロセスが表示されたホストダッシュボードが表示されます。
Keycloak センサーは、以下のパフォーマンス指標を収集します:
パフォーマンス・メトリック
Keycloak インスタンスから、以下のメトリクスが収集されます:
| パフォーマンス・メトリック | 説明 | メトリック名 | ユニット |
|---|---|---|---|
| ユーザーイベント指標 | タグ: realm, client_id, event, または が付いたユーザーイベントの発生を追跡します error |
keycloak.user |
数 |
| HTTP Server メトリクスのリクエスト | タグ(uri, method, status, または outcome)を持つURIに対して /realms/{realm}/protocol/{protocol}、処理されたリクエストの所要時間を測定します |
http.server.requests |
ミリ秒 |
ユーザーイベントの指標
Keycloak ユーザーイベントはタグを使用して収集・分類され、その結果得られたデータは Instana のUI上でグラフとして表示されます。
| データ・ポイント | タグによるフィルター | タグで分類 | 説明 |
|---|---|---|---|
| 成功したログイン | 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上で次のように算出されます:
| データ・ポイント | タグによるフィルター | タグで分類 | 説明 |
|---|---|---|---|
| エラー分布の取得( 4xx または 5xx ) | status=4xx または 5xx |
status |
リクエストエラーの分布 |
| URI別の要求期間 | - | uri |
URI別リクエスト所要時間のトップ5(ミリ秒単位) |
健康指標
Keycloak その /health エンドポイントを通じて、サーバーの実行準備状況や可用性を示すヘルス指標を提供します。 通常、以下の指標が収集されます:
| ヘルス・チェック | 説明 |
|---|---|
| 全体的な健康状態 | Keycloak インスタンスの全体的な状態 |
| データベース接続 | Keycloak がデータベースに接続できるかどうかを示します |
| クラスターの正常性 | Keycloak クラスタノードの状態およびノード間通信 |