株式会社 日立製作所の茂木です。今回は Keycloak のプラグインについて紹介します。
Keycloak はプラグインの開発を容易にするため、様々な機能の Service Provider Interface(SPI)を提供しています。この SPI を利用したプラグインがコミュニティベースで開発されていて、Keycloak の公式 HP でも紹介されています。Keycloak - Extensions
今回はこれらのなかから、Prometheus 形式で Keycloak の Metrics が取得可能になるkeycloak-metrics-spi
を紹介していきます。
keycloak-metrics-spi
Metrics として下記の情報が取得できるようになります。
- Java VM のパフォーマンス (Heap など)
- ログインなどの Event
- Endpoint ごとのレスポンスタイム
これらの Metrics を利用するため、プラグインをインストールして Prometheus で Metrics の取得、Grafana での可視化までを行っていきます。
検証環境
- Keycloak 8.0.0
- keycloak-metrics-spi 1.0.4
- prometheus 2.14.0
- grafana 6.4.4
Keycloak の設定
Keycloak の Metrics を取得できるようにするため、keycloak-metrics-spi
を導入して Keyclaok の設定を行っていきます。
keycloak-metrics-spi の導入
まずプラグインの導入を行います。keycloak-metrics-spi
の jar ファイルは、GitHub のRelease ページから取得できます。
今回は執筆時点で最新の1.0.4
をダウンロードします。ダウンロードしてきた jar ファイルは Keycloak の standalone/deployments/
ディレクトリに配置します。
ファイルを配置して Keycloak を起動後、Server Info -> Providers 画面でmetrics
、metrics-listener
が有効になっていることを確認します。
Keycloak の設定
keycloak-metrics-spi
では、ログイン回数などの情報を Event Listner SPI を利用して取得しています。イベントの情報を取得できるようにするため、Event 保存の有効化および Event Listener SPI の有効化を行います。Readme には CLI を利用した方法が説明されていますが、今回は Admin Console から設定します。
Event -> Config を開き、下記の設定を行います。
- Event Listeners に
metrics-listener
を追加 - Save Events を ON に設定
Metrics Endpoint の確認
keycloak-metrics-spi
をインストールすると、http://localhost:8080/auth/realms/master/metrics
でメトリクス情報が取れるようになります。ブラウザでアクセスすると、下記のようにメトリクスを取得できていることが確認できます。
Prometheus の設定
Prometheus が Keycloak の Metrics 情報を取得できるように、prometheus.yaml
のscrape_config
に下記の設定を追加します。
scrape_configs:
- job_name: "keycloak"
metrics_path: /auth/realms/master/metrics
static_configs:
- targets: ["localhost:8080"]
設定追加後に Prometheus を起動し、Status -> Targets から Keycloak のエンドポイントが Target として設定されていることが確認できます。
Keycloak の Metrics が取得できていれば、ログイン数や Java Heap の使用量といった情報をグラフ表示できるようになります。
- Login 数の表示
- Java Heap 使用量の表示
Grafana での Dash Board 表示
最後に Prometheus が取得した Metrics を基に、Grafana で可視化してみます。Grafana のサイトで公開されているKeycloak Metrics という Dash Board があるので、これを Grafana にインポートします。なお、この Dash Board には Pie Chart プラグインが利用されているので、先にインストールしておいてください。
正しく設定されていれば、下に示すような Dash Board が表示されます。
最後に
今回はkeycloak-metrics-spi
を紹介しましたが、他にも様々なプラグインが紹介されています。今後も色々なプラグインが開発されていくと思うので注目していきたいと思っています。