如何在Grafana中使用Access Token调用REST API获取Keycloak登录事件数据
在Grafana Infinity数据源中用Access Token调用Keycloak登录事件API的配置方案
1. 把已获取的Access Token存为Grafana变量
- 进入Grafana后台,打开「Configuration」→「Variables」,点击「New variable」
- 变量类型选「Query」,数据源指定你已配置好的Infinity数据源
- 在「Query」输入框里,填入你之前成功获取Token的API请求(比如
POST https://your-auth-domain/token,附带账号密码或其他认证参数) - 用正则提取Token:在「Regex」栏填写
"access_token": "([^"]+)"(适配标准JWT返回格式,若你的返回结构不同,调整正则匹配对应字段) - 给变量命名(比如
keycloak_access_token),保存后可以在变量预览区确认Token是否正确提取
2. 配置Keycloak事件API的Infinity查询
- 新建或编辑面板,选择Infinity数据源
- 请求方法选
GET(按Keycloak API要求调整),填入事件API地址,比如https://your-keycloak-server/auth/admin/realms/your-realm/events - 切换到「Headers」标签,添加授权头:
- 键:
Authorization - 值:
Bearer ${keycloak_access_token}(用变量引用刚才存储的Token)
- 键:
- (可选)如果需要过滤事件,在「Parameters」标签添加参数,比如
type=LOGIN(指定只获取登录事件)、max=100(限制返回条数)
3. 处理Token过期自动刷新
- 回到变量配置页,在「Refresh」选项里选择「On Dashboard Load」,或设置固定刷新间隔(比如5分钟,和你的Token有效期匹配)
- 确保获取Token的API请求能正确返回新Token,避免因过期导致查询失败
4. 验证配置有效性
- 点击查询面板的「Run Query」,检查是否能正常返回Keycloak登录事件数据
- 若报错,优先排查:
- 变量预览里的Token是否有效
- Authorization头格式是否正确(必须是
Bearer加Token,注意空格) - 当前Token是否拥有访问Keycloak事件API的权限(需在Keycloak里配置对应角色)
内容的提问来源于stack exchange,提问作者Bhushan Deshmukh
相关产品推荐
相关产品推荐

