使用Keycloak获取度量信息

我是Hitachi制作公司的茂木。这次我要介绍的是Keycloak插件。

为了方便插件开发,Keycloak提供了各种功能的服务提供者接口(SPI)。基于这些SPI开发的插件是由社区开发并且在Keycloak官方网站上进行了介绍。Keycloak – 扩展.

本次我们将介绍一种名为keycloak-metrics-spi的选项,可以通过Prometheus格式来获取Keycloak的指标数据。

Keycloak度量指标扩展点

您可以获取以下信息作为指标。

    • Java VM のパフォーマンス (Heap など)

 

    • ログインなどの Event

 

    Endpoint ごとのレスポンスタイム

为了使用这些指标,我们需要在Prometheus上安装插件来获取指标,并在Grafana中进行可视化。

验证环境

    • Keycloak 8.0.0

 

    • keycloak-metrics-spi 1.0.4

 

    • prometheus 2.14.0

 

    grafana 6.4.4

Keycloak的设置

为了能够获取Keycloak的指标,我们将引入keycloak-metrics-spi并进行Keycloak配置。

引入 keycloak-metrics-spi

首先,进行插件的安装。可以从GitHub的Release页面获取keycloak-metrics-spi的jar文件。

metrics-release.png

这次我们将下载最新的1.0.4版本。下载的jar文件将放置在Keycloak的standalone/deployments/目录中。

将文件放置并启动Keycloak后,在“Server Info -> Providers”页面上确认metrics和metrics-listener已启用。

server-info-realm-rest.png
server-info-event-listener.png

Keycloak的配置

在keycloak-metrics-spi中,我们利用Event Listner SPI来获取登录次数等信息。为了能够获取事件信息,我们将启用事件保存和事件监听器SPI。Readme中介绍了使用CLI的方法,但本次我们将从Admin Console进行设置。

打开事件配置,进行以下设置。

    Event Listeners にmetrics-listenerを追加

将“Save Events”设置为“ON”。

event-config.png

确认度量终端点

安装keycloak-metrics-spi后,可以通过访问http://localhost:8080/auth/realms/master/metrics 来获取度量信息。在浏览器中访问,可以确认已成功获取下面的度量信息。

metrics-list.png

普罗米修斯的设置

为了使Prometheus能够获取Keycloak的Metrics信息,我们需要在prometheus.yaml的scrape_config中添加以下设置。

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

設定追加後,您可以啟動 Prometheus,並從「狀態」->「目標」中確認 Keycloak 端點是否已設定為目標。

prometheus-targets.png

如果能够获取Keycloak的Metrics,就能够将登录次数和Java Heap的使用量等信息以图表形式展示出来。

    Login 数の表示
prometheus-logins.png
    Java Heap 使用量の表示
prometheus-heap.png

在Grafana中显示仪表板

最后,我们将使用Prometheus获取的Metrics,在Grafana中进行可视化。在Grafana网站上,有一个名为Keycloak Metrics的仪表板可以使用,因此我们将其导入到Grafana中。请注意,该仪表板使用了Pie Chart插件,所以请先安装该插件。

如果设置正确,将显示如下所示的仪表板。

grafana-dashboard.png

最后一步

这次我们介绍了keycloak-metrics-spi,还有其他各种插件正在被介绍。由于我们认为将来还会开发出各种各样的插件,所以我们希望能够继续关注。

广告
将在 10 秒后关闭
bannerAds