使用Keycloak Metrics SPI,可以在Grafana中查看Red Hat SSO(Keycloak)的运行统计
我们可以在Grafana上查看Red Hat Single Sign-on(以下简称Red Hat SSO)的运行统计数据。
Red Hat SSO是一个基于开源软件Keycloak的产品,可以获得支持服务。
稼働统计将使用社区的 Aerogear Keycloak Metrics SPI。
尽管 Keycloak Metrics SPI 不受 Red Hat SSO 的支持,但仍可以使用。
值得一提的是,Red Hat SSO 的容器镜像中可以使用 Prometheus 指标,但无法获取登录次数等指标,仅限于基于 JBoss EAP 的 Red Hat SSO 的指标。(截至2021年10月18日)
本教程将重点讲解Red Hat SSO的安装步骤。
(尽管Keycloak的安装程序可能不同,但操作步骤是一样的)
环境
・OpenJDK 8:开放的Java开发工具包8版本
・Red Hat SSO 7.5.0 (Keycloak 15.0.2):红帽单点登录7.5.0版(Keycloak 15.0.2)
・Aerogear Keycloak Metrics SPI 2.5.1:Aerogear Keycloak指标SPI 2.5.1版
1. 安装红帽SSO
登录Red Hat客户门户并下载Red Hat SSO。
*请同时下载补丁并进行打补丁操作(撰写时尚未有补丁发布)。
Red Hat SSO的zip安装只需解压缩即可完成。安装位置任意。
$ unzip rh-sso-7.5.0-server-dist.zip
将解压缩并创建的文件夹命名为SSO_HOME,并设置为环境变量。
$ export SSO_HOME="zipを展開して作成したディレクトリー"
我会创建Red Hat SSO的管理员用户。(为了方便起见,我将使用admin/admin进行创建)
$ $SSO_HOME/bin/add-user-keycloak.sh -u admin -p admin
Added 'admin' to '/xxxx/standalone/configuration/keycloak-add-user.json', restart server to load user
参考步骤
2. 安装和设置Aerogear Keycloak Metrics SPI
如果将其放置在$SSO_HOME/standalone/deployments中,则可以。
$ cd $SSO_HOME/standalone/deployments
$ curl -LO https://github.com/aerogear/keycloak-metrics-spi/releases/download/2.5.1/keycloak-metrics-spi-2.5.1.jar
$ touch keycloak-metrics-spi-2.5.1.jar.dodeploy
$ ls
README.txt keycloak-metrics-spi-2.5.1.jar keycloak-metrics-spi-2.5.1.jar.dodeploy
启用metrics-listener事件
启用metrics-listener事件。这可以在GUI中完成,但在CUI中创建步骤更简单。
首先启动Red Hat SSO。
将绑定地址参数设置为通配符(0.0.0.0),这是因为后面要使用Docker进行Prometheus和Grafana的安装。(为了方便从Prometheus获取Red Hat SSO的度量数据)
$ $SSO_HOME/bin/standalone.sh -b 0.0.0.0
接下来,在另一个终端上启用metrics-listener事件。
$ $SSO_HOME/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin
Logging into http://localhost:8080/auth as user admin of realm master
$ $SSO_HOME/bin/kcadm.sh update events/config -s "eventsEnabled=true" -s "adminEventsEnabled=true" -s "eventsListeners+=metrics-listener"
这样一来,就可以获取度量数据,并且可以使用curl来进行确认。
$ curl http://localhost:8080/auth/realms/master/metrics
# HELP keycloak_user_event_CLIENT_LOGIN Generic KeyCloak User event
# TYPE keycloak_user_event_CLIENT_LOGIN counter
# HELP keycloak_user_event_REGISTER_NODE Generic KeyCloak User event
# TYPE keycloak_user_event_REGISTER_NODE counter
# HELP keycloak_user_event_VALIDATE_ACCESS_TOKEN_ERROR Generic KeyCloak User event
# TYPE keycloak_user_event_VALIDATE_ACCESS_TOKEN_ERROR counter
・・・
・参考流程
3. 安装和设置Prometheus与Grafana
Prometheus 和 Grafana 就使用 Docker 运行吧。(容器确实很方便)
我们将按照以下文件结构进行创建。
$ tree .
.
├── docker-compose.yml
└── prometheus
└── prometheus.yml
docker-compose.yml的内容如下。
version: "3"
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus:/etc/prometheus/
ports:
- 9090:9090
grafana:
image: grafana/grafana
container_name: grafana
environment:
- TERM=linux
- GF_INSTALL_PLUGINS=grafana-piechart-panel # メトリクスのダッシュボードで必要となります
ports:
- 3000:3000
prometheus.yml文件内容如下:
将targets的IP地址设置为RH-SSO运行的机器IP地址。
由于希望立即进行确认,因此将间隔设置为5秒。
global:
scrape_interval: 5s
evaluation_interval: 5s
external_labels:
monitor: "sso-monitor"
rule_files:
scrape_configs:
- job_name: "keycloak" # メトリクスのダッシュボードがkeycloakのjob名を参照するので、ここはkeycloakにします
metrics_path: /auth/realms/master/metrics
static_configs:
- targets: ["192.168.68.111:8080"] # RH-SSOが動作しているマシンのIPアドレスにします
当准备好文件后,就可以启动了。
$ docker-compose up -d
Creating network "sso-metrics_default" with the default driver
Creating grafana ... done
Creating prometheus ... done
4. 看一下《普罗米修斯》
当访问 http://localhost:9090 时,可以显示 Prometheus。
从状态选项卡中点击目标(target),可以查看在 prometheus-compose.yml 中设置的 job_name 为 “RH SSO” 的相关信息。

5. 我来看看Grafana的设置和界面。
当访问 http://localhost:3000 时,可以显示Grafana。
ID和密码为admin/admin。请注意,登录后将要求更改密码。
设定数据源
在Configuration的左侧窗格中,选择DataSource标签,并选择Prometheus。
在HTTP的URL栏中输入http://prometheus:9090,然后执行保存&测试。

设置Keycloak Metrics的仪表盘
由于Keycloak Metrics已经发布了仪表盘,我们将利用它。
在左侧面板中选择”管理器”,然后选择”导入”。
在”通过grafana.com导入”的选项中,填入https://grafana.com/grafana/dashboards/10441 ,然后点击”加载”进行导入。

通过Dash Board查看Keycloak指标,可以显示每个Realm和客户端(应用程序)的登录次数等。

6. 总结
我已经记录了从安装Red Hat SSO到在Grafana中查看运行统计的步骤。在实际使用Grafana的运营仪表板中,您可能希望只查看该领域或者重点查看令牌的状态等。由于这些都是可定制的,所以可以参考Keycloak Metrics的仪表板,并根据您想要在运营中确认的内容进行调整。