使用事件指标监控用户活动

事件指标为管理员提供 Keycloak 实例中不同用户活动的聚合视图。

目前,仅捕获用户事件的指标。 例如,您可以监控执行的登录次数、登录失败次数或令牌刷新次数。

这些指标使用标准指标端点公开,您可以在自己的指标收集系统中使用它来创建仪表板和警报。

指标作为每个 Keycloak 实例的计数器报告。 计数器在实例重启时重置。 如果您在集群中运行多个实例,您需要从所有实例收集指标并聚合它们以获得每个集群的视图。

启用事件指标

要开始收集事件指标,请启用指标并启用用户事件的指标。

以下显示了所需的启动参数

bin/kc.[sh|bat] start --metrics-enabled=true --event-metrics-user-enabled=true ...

默认情况下,每个 realm 都有一个单独的指标。 要按客户端和身份提供商细分指标,您可以添加使用配置选项 event-metrics-user-tags 的那些指标维度。 这对于客户端和 IDP 数量较少的安装非常有用。 不建议客户端或 IDP 数量较多的安装使用此方法,因为它会增加 Keycloak 的内存使用量,并且会增加监控系统上的负载。

以下显示了如何配置 Keycloak 以按所有三个指标维度细分指标

bin/kc.[sh|bat] start ... --event-metrics-user-tags=realm,idp,clientId ...

您可以限制 Keycloak 将公开指标的事件。 有关可用事件的概述,请参阅服务器管理指南中的事件类型

以下示例将收集的事件限制为 LOGINLOGOUT 事件

bin/kc.[sh|bat] start ... --event-metrics-user-events=login,logout ...

有关收集的指标的描述,请参阅自提供指标

相关选项

metrics-enabled

是否服务器应公开指标。

如果启用,指标可在 /metrics 端点获得。

CLI: --metrics-enabled
Env: KC_METRICS_ENABLED

true, false (默认)

event-metrics-user-enabled

基于用户事件创建指标。

CLI: --event-metrics-user-enabled
Env: KC_EVENT_METRICS_USER_ENABLED

仅当指标已启用且用户事件指标功能已启用时可用

true, false (默认)

event-metrics-user-events

要为用户事件指标收集的事件的逗号分隔列表。

此选项可用于减少创建的指标数量,因为默认情况下所有用户事件都会创建一个指标。

CLI: --event-metrics-user-events
Env: KC_EVENT_METRICS_USER_EVENTS

仅当用户事件指标已启用时可用

使用 remove_credential 代替 remove_totp,以及 update_credential 代替 update_totpupdate_password已弃用值:remove_totp, update_totp, update_password

authreqid_to_token, client_delete, client_info, client_initiated_account_linking, client_login, client_register, client_update, code_to_token, custom_required_action, delete_account, execute_action_token, execute_actions, federated_identity_link, federated_identity_override_link, grant_consent, identity_provider_first_login, identity_provider_link_account, identity_provider_login, identity_provider_post_login, identity_provider_response, identity_provider_retrieve_token, impersonate, introspect_token, invalid_signature, invite_org, login, logout, oauth2_device_auth, oauth2_device_code_to_token, oauth2_device_verify_user_code, oauth2_extension_grant, permission_token, pushed_authorization_request, refresh_token, register, register_node, remove_credential, remove_federated_identity, remove_totp (已弃用), reset_password, restart_authentication, revoke_grant, send_identity_provider_link, send_reset_password, send_verify_email, token_exchange, unregister_node, update_consent, update_credential, update_email, update_password (已弃用), update_profile, update_totp (已弃用), user_disabled_by_permanent_lockout, user_disabled_by_temporary_lockout, user_info_request, verify_email, verify_profile

event-metrics-user-tags

要为用户事件指标收集的标签的逗号分隔列表。

默认情况下,仅启用 realm 以避免高指标基数。

CLI: --event-metrics-user-tags
Env: KC_EVENT_METRICS_USER_TAGS

仅当用户事件指标已启用时可用

realm, idp, clientId

在此页面上