监控
Alauda Application Services Identity Management E1 提供与 Prometheus 兼容的内置指标。启用指标后,您可以在可观测性堆栈中监控 Keycloak 的运行状况、性能和使用情况。
目录
启用指标关键指标建议的告警指标配置 Prometheus 抓取存活性和就绪性探针健康端点可观测性集成事件审计启用登录事件主要登录事件类型启用管理员事件查看事件事件监听器通过 REST API 查询事件启用指标
通过在 Keycloak CR 中设置 metrics-enabled 选项来启用指标:
启用后,Keycloak 会在管理端口(默认:9000)上公开指标端点,该端口可通过 spec.httpManagement.port 进行配置:
- 集群内:
http://<keycloak-service-name>.<namespace>:9000/metrics - Pod 内:
http://localhost:9000/metrics
管理端口与主 HTTP/HTTPS 端口分离。
关键指标
以下类别的指标可用:
Keycloak 26.x 通过单个指标 keycloak_user_events_total 原生公开用户事件指标,该指标带有 event 标签(例如 event="login"、event="register")。将 --event-metrics-user-enabled=true 添加到构建或运行时选项中即可启用。无需使用 aerogear/keycloak-metrics-spi 等第三方 SPI 扩展,且它们采用不同的命名约定。
建议的告警指标
建议从以下指标开始配置告警规则:
配置 Prometheus 抓取
将以下抓取配置添加到 Prometheus 实例,以收集 Keycloak 指标:
如果使用 Prometheus Operator,请创建一个 ServiceMonitor:
存活性和就绪性探针
Keycloak Operator 会自动配置存活性和就绪性探针。您可以在 Keycloak CR 中自定义探针参数:
探针使用 http://<pod>:9000/health/live 上的管理端点和 http://<pod>:9000/health/ready。
健康端点
Keycloak 在管理端口上公开健康端点,用于监控和编排:
可观测性集成
如需构建完整的可观测性堆栈,请将 Keycloak 的内置功能与集群级工具结合使用:
Keycloak 26.x 支持基于 OpenTelemetry 的分布式追踪。Keycloak Operator 在 Keycloak CR 中提供一流的追踪配置字段:
可用的 spec.tracing 字段:
对所有标准追踪配置使用 spec.tracing。仅当上述一流字段未涵盖相关追踪选项时,才使用 additionalOptions。
事件审计
Keycloak 提供了内置事件系统,用于记录登录事件和管理员操作。事件可以存储在数据库中,也可以转发到外部监听器。
启用登录事件
- 在管理控制台中,转到 Realm Settings > Events 选项卡。
- 在 User events settings 部分:
- 启用 Save events。
- 设置 Expiration 以控制事件的保留时长(例如,
30天)。 - 选择要记录的 Event types(留空则记录所有类型)。
- 点击 Save。
主要登录事件类型
启用管理员事件
- 在 Admin events settings 部分:
- 启用 Save events。
- 启用 Include representation,以记录管理员操作的完整请求正文(有助于建立审计跟踪,但会增加存储使用量)。
- 点击 Save。
管理员事件记录通过管理控制台或 Admin REST API 执行的所有操作,包括资源类型、操作类型(CREATE、UPDATE、DELETE)以及执行操作的管理员用户。
查看事件
- 登录事件:转到 Events > User events 选项卡。可按事件类型、用户、日期范围或客户端进行筛选。
- 管理员事件:转到 Events > Admin events 选项卡。可按操作类型、资源类型或管理员用户进行筛选。
事件监听器
事件监听器会在事件发生时对其进行处理。Keycloak 包含两个内置监听器:
在 Realm Settings > Events > Event listeners 中配置监听器。