Keycloak
1 前言
一个问题,一篇文章,一出故事。
笔者生产环境有一套keycloak集群需要正式上线,上线前笔者想完善他的监控,于是总结Keycloak的接口。
集群环境,
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”是综合状态,通常用于监控平台
没有评论