通过API Key鉴权方式生成免登录的可分享的大盘链接。
背景信息
原生的Grafana若需要直接访问大盘,要么使用Snapshot功能,要么开启匿名模式。前者对访问的数据做了镜像,随着时间变化无法查看后续更新的数据,后者若不配合IP白名单功能,则安全性较差。
可观测可视化 Grafana 版支持通过API Key鉴权方式生成免登录的可分享的大盘链接。
您可以将其分享给其他用户。
使用这个链接的用户将能够访问指定的大盘而无需登录,因为鉴权是通过API Key完成的。
步骤一:配置Grafana参数
登录ARMS控制台,在左侧导航栏选择 。
在工作区管理页面,单击目标工作区ID。
在左侧导航栏单击参数设置。
在左侧参数列表选择aliyun,然后单击修改参数。
修改api_key_share参数的运行参数为true,然后单击保存并生效。
可选:若期望链接用于iFrame内嵌,则需要额外调整以下参数。
跨域情况下
域名需为HTTPS,并修改以下3个security参数。
allow_embedding=true cookie_samesite=none cookie_secure=true
未跨域情况下
修改security下的allow_embedding参数为true,开启iFrame内嵌即可。
步骤二:创建API Key
Grafana 9.0.x和Grafana 10.0.x版本创建API Key的步骤有所不同,请确认您的Grafana版本并选择对应的操作步骤。
如果您的Grafana是从9.0.x升级到10.0.x版本,那么在Administration > api keys页面依然可以看到Grafana 9.0.x中创建的API Key。此时,单击migrate to service account可以将原有的API Key迁移到Service Account,迁移完成后api keys页面将会被永久隐藏。此外,版本升级不会影响原有API Key的使用。
Grafana 9.0.x版本
登录ARMS控制台,在左侧导航栏选择 。
在工作区管理页面,单击目标工作区右侧的访问地址url链接进入Grafana。
说明如果需要登录Grafana,可以使用Grafana的Admin账号和创建工作区时设置的密码登录Grafana,或单击Sign in with Alibaba Cloud直接使用当前购买工作区的阿里云账号登录Grafana。
在Grafana左侧导航栏选择
。说明进入该菜单需要Admin权限。
单击New API key或Add API key,然后设置以下参数。
Key name:API Key的名称,不可以和已有的名称重复。
Role:设置为Viewer。
Time to live:设置有效时间,例如60s(60秒)、10m(10分钟)、1d(1天)。
单击Add,在弹出的对话框中获取并保存API Key的值。
重要对话框关闭后将无法再次查看API Key的值。
Grafana 10.0.x版本
登录ARMS控制台,在左侧导航栏选择 。
在工作区管理页面,单击目标工作区右侧的访问地址url链接进入Grafana。
说明如果需要登录Grafana,可以使用Grafana的Admin账号和创建工作区时设置的密码登录Grafana,或单击Sign in with Alibaba Cloud直接使用当前购买工作区的阿里云账号登录Grafana。
在Grafana左侧导航栏选择
。重要进入该菜单需要Admin权限。
服务账号会占用一个用户账号。
创建或者单击已创建的Service Account,然后设置以下参数。
Display name:Service Account的名称,不可以和已有的名称重复。
Role:设置为Viewer。
单击Add service account token,然后设置以下参数。
Display name:API Key的名称,不可以和已有的名称重复。
Expiration:设置有效时间,例如60s(60秒)、10m(10分钟)、1d(1天)。
单击Generate token,然后在弹出的对话框保存API Key的值。
重要对话框关闭后将无法再次查看API Key的值。
步骤三:生成分享链接
在Grafana页面,进入需要分享的大盘页面。
单击图标,在Link页签获取大盘分享链接。
在链接最后添加
&aliyun_api_key=<API Key值>
,API Key值为上文步骤二中获取的API Key。例如:
https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key=eyJrIjoiWkIwNnN2c0RTSD******
使用带有API Key的分享链接即可免登录访问Grafana大盘。
说明免登录访问Grafana大盘后如需登录Grafana,单击页面左下角的Sign In即可登录。
常见问题
通过共享连接访问大盘时页面报错如下:
可能原因:内嵌大盘情况下,allow_embedding参数未设置。配置allow_embedding参数的操作,请参见上文步骤一。
无法显示大盘数据。
内嵌大盘情况下,Cookie无法写入导致,可能原因如下:
跨域,即根域名不同时,默认配置无法写入Cookie。
cookie_samesite参数设置为none,但是cookie_secure参数设置为false。
域名为HTTP。由于cookie_secure参数无法在HTTP下生效,因此域名不支持HTTP。
解决方案:参考上文步骤一重新配置Grafana参数。
通过共享连接访问大盘时页面报错如下:
可能原因:
浏览器版本过低。
内嵌大盘的情况下浏览器配置导致。
解决方案:
查看Cookie使用的配置,允许使用Cookie。
若使用Chrome浏览器,在无痕模式下需要配置允许所有Cookie。
如果用于大盘内嵌,API Key建议是设置较短的有效时间使用一次就更换,还是配置一个很长时间的免登Key?
您可以根据安全需要做配置,建议3个月换一次,若Key泄露可以通过删除让Key失效。
API Key是否有数量上限?
Key的创建官方源码里并没有做限制,由于页面查询时最多展示100条,建议不要超过100个。
API Key配置的有效时间到期了,这个API Key会自动删除吗?
Key失效后,数据仍然存在,如果担心占用数量您可以手动删除Key。Grafana页面上失效的Key默认不展示,您可以单击Include expired keys显示已失效Key,然后删除。
- 本页导读 (1)