Help us understand the problem. What is going on with this article?

Keycloak でメトリクス情報の取得

株式会社 日立製作所の茂木です。今回は 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 ページから取得できます。

metrics-release.png

今回は執筆時点で最新の1.0.4をダウンロードします。ダウンロードしてきた jar ファイルは Keycloak の standalone/deployments/ディレクトリに配置します。

ファイルを配置して Keycloak を起動後、Server Info -> Providers 画面でmetricsmetrics-listenerが有効になっていることを確認します。

server-info-realm-rest.png

server-info-event-listener.png

Keycloak の設定

keycloak-metrics-spiでは、ログイン回数などの情報を Event Listner SPI を利用して取得しています。イベントの情報を取得できるようにするため、Event 保存の有効化および Event Listener SPI の有効化を行います。Readme には CLI を利用した方法が説明されていますが、今回は Admin Console から設定します。

Event -> Config を開き、下記の設定を行います。

  • Event Listeners にmetrics-listenerを追加

- Save Events を ON に設定

event-config.png

Metrics Endpoint の確認

keycloak-metrics-spiをインストールすると、http://localhost:8080/auth/realms/master/metrics でメトリクス情報が取れるようになります。ブラウザでアクセスすると、下記のようにメトリクスを取得できていることが確認できます。

metrics-list.png

Prometheus の設定

Prometheus が Keycloak の Metrics 情報を取得できるように、prometheus.yamlscrape_configに下記の設定を追加します。

scrape_configs:
  - job_name: "keycloak"
    metrics_path: /auth/realms/master/metrics
    static_configs:
      - targets: ["localhost:8080"]

設定追加後に Prometheus を起動し、Status -> Targets から Keycloak のエンドポイントが Target として設定されていることが確認できます。

prometheus-targets.png

Keycloak の Metrics が取得できていれば、ログイン数や Java Heap の使用量といった情報をグラフ表示できるようになります。

  • Login 数の表示

prometheus-logins.png

  • Java Heap 使用量の表示

prometheus-heap.png

Grafana での Dash Board 表示

最後に Prometheus が取得した Metrics を基に、Grafana で可視化してみます。Grafana のサイトで公開されているKeycloak Metrics という Dash Board があるので、これを Grafana にインポートします。なお、この Dash Board には Pie Chart プラグインが利用されているので、先にインストールしておいてください。

正しく設定されていれば、下に示すような Dash Board が表示されます。

grafana-dashboard.png

最後に

今回はkeycloak-metrics-spiを紹介しましたが、他にも様々なプラグインが紹介されています。今後も色々なプラグインが開発されていくと思うので注目していきたいと思っています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした