如何监控Keycloak?

Keycloak

1 前言

一个问题,一篇文章,一出故事。
笔者生产环境有一套keycloak集群需要正式上线,上线前笔者想完善他的监控,于是总结Keycloak的接口。
集群环境,

如何部署RHBK的分布式缓存集群?


Keyclaok的接口与状态对应关系,如下下表,

启动中
   │
   ├─ /health/started = DOWN
   ├─ /health/live    = UP
   └─ /health/ready   = DOWN

启动完成
   │
   ├─ /health/started = UP
   ├─ /health/live    = UP
   └─ /health/ready   = UP

数据库故障
   │
   ├─ /health/live    = UP
   ├─ /health/ready   = DOWN
   └─ /health         = DOWN

进程卡死/崩溃
   │
   ├─ /health/live    = DOWN
   ├─ /health/ready   = DOWN
   └─ /health         = DOWN

2 最佳实践

2.1 检查Keycloak是否开启了Health Check

cat /etc/keycloak/keycloak.conf

可见如下配置,

# Observability
health-enabled = true
metrics-enabled = true

2.2 检查接口状态

2.2.1 存活检查接口

curl -k https://rhbk01.cmdschool.org:9000/health/live
curl -k https://rhbk02.cmdschool.org:9000/health/live

可见如下返回值,

{
    "status": "UP",
    "checks": [
    ]
}

注意:“/live”表示Keycloak进程是否还活着、是否已经陷入不可恢复状态。

2.2.2 启动检查接口

curl -k https://rhbk01.cmdschool.org:9000/health/started
curl -k https://rhbk02.cmdschool.org:9000/health/started

可见如下返回值,

{
    "status": "UP",
    "checks": [
    ]
}

注意:“/started”表示Keycloak是否已经完成启动过程。

2.2.3 就绪检查接口

curl -k https://rhbk01.cmdschool.org:9000/health/ready
curl -k https://rhbk02.cmdschool.org:9000/health/ready

可见如下返回值,

{
    "status": "UP",
    "checks": [
        {
            "name": "Keycloak cluster health check",
            "status": "UP"
        },
        {
            "name": "Keycloak database connections async health check",
            "status": "UP"
        }
    ]
}

注意:“/ready”表示Keycloak是否已经具备处理用户请求的能力。

2.2.4 综合健康检查接口

curl -k https://rhbk01.cmdschool.org:9000/health
curl -k https://rhbk02.cmdschool.org:9000/health

可见如下返回值,

{
    "status": "UP",
    "checks": [
        {
            "name": "Keycloak cluster health check",
            "status": "UP"
        },
        {
            "name": "Keycloak database connections async health check",
            "status": "UP"
        }
    ]
}

注意:“/health”是综合状态,通常用于监控平台

没有评论

发表回复

Keycloak
如何配置KeyCloak读取/etc/hosts的设置?

1 前言 一个问题,一篇文章,一出故事。 如何升级RHBK的版本? Quarkus/RHBK默认使用 …

Keycloak
如何开启Keycloak的日志调试模式?

1 前言 一个问题,一篇文章,一出故事。 如何升级RHBK的版本? 本章将实现升级后Keycloak …

Keycloak
如何删除KeyCloak Realm?

1 前言 一个问题,一篇文章,一出故事。 如何导出不包含客户端的非本地数据库的KeyCloak Re …