文档

Grafana基于API Key分享大盘

更新时间:

通过API Key鉴权方式生成免登录的可分享的大盘链接。

背景信息

原生的Grafana若需要直接访问大盘,要么使用Snapshot功能,要么开启匿名模式。前者对访问的数据做了镜像,随着时间变化无法查看后续更新的数据,后者若不配合IP白名单功能,则安全性较差。

可观测可视化 Grafana 版支持通过API Key鉴权方式生成免登录的可分享的大盘链接。

  • 您可以将其分享给其他用户。

  • 使用这个链接的用户将能够访问指定的大盘而无需登录,因为鉴权是通过API Key完成的。

步骤一:配置Grafana参数

  1. 登录ARMS控制台,在左侧导航栏选择Grafana服务 > 工作区管理

  2. 工作区管理页面,单击目标工作区ID。

  3. 在左侧导航栏单击参数设置

  4. 在左侧参数列表选择aliyun,然后单击修改参数

  5. 修改api_key_share参数的运行参数为true,然后单击保存并生效

    设置api_key参数

  6. 可选:若期望链接用于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版本

  1. 登录ARMS控制台,在左侧导航栏选择Grafana服务 > 工作区管理

  2. 工作区管理页面,单击目标工作区右侧的访问地址url链接进入Grafana。

    说明

    如果需要登录Grafana,可以使用Grafana的Admin账号和创建工作区时设置的密码登录Grafana,或单击Sign in with Alibaba Cloud直接使用当前购买工作区的阿里云账号登录Grafana。

  3. 在Grafana左侧导航栏选择Configuration > API keys

    说明

    进入该菜单需要Admin权限。

  4. 单击New API keyAdd API key,然后设置以下参数。

    • Key name:API Key的名称,不可以和已有的名称重复。

    • Role:设置为Viewer

    • Time to live:设置有效时间,例如60s(60秒)、10m(10分钟)、1d(1天)。

  5. 单击Add,在弹出的对话框中获取并保存API Key的值。

    重要

    对话框关闭后将无法再次查看API Key的值。

    API Key值

Grafana 10.0.x版本

  1. 登录ARMS控制台,在左侧导航栏选择Grafana服务 > 工作区管理

  2. 工作区管理页面,单击目标工作区右侧的访问地址url链接进入Grafana。

    说明

    如果需要登录Grafana,可以使用Grafana的Admin账号和创建工作区时设置的密码登录Grafana,或单击Sign in with Alibaba Cloud直接使用当前购买工作区的阿里云账号登录Grafana。

  3. 在Grafana左侧导航栏选择administration > service accounts

    重要
    • 进入该菜单需要Admin权限。

    • 服务账号会占用一个用户账号。

  4. 创建或者单击已创建的Service Account,然后设置以下参数。

    • Display name:Service Account的名称,不可以和已有的名称重复。

    • Role:设置为Viewer

  5. 单击Add service account token,然后设置以下参数。

    • Display name:API Key的名称,不可以和已有的名称重复。

    • Expiration:设置有效时间,例如60s(60秒)、10m(10分钟)、1d(1天)。

  6. 单击Generate token,然后在弹出的对话框保存API Key的值。

    重要

    对话框关闭后将无法再次查看API Key的值。

步骤三:生成分享链接

  1. 在Grafana页面,进入需要分享的大盘页面。

  2. 单击分享图标图标,在Link页签获取大盘分享链接。

    Grafana大盘分享链接

  3. 在链接最后添加&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******
  4. 使用带有API Key的分享链接即可免登录访问Grafana大盘。

    说明

    免登录访问Grafana大盘后如需登录Grafana,单击页面左下角的Sign In即可登录。

常见问题

  • 通过共享连接访问大盘时页面报错如下:访问大盘报错1

    可能原因:内嵌大盘情况下,allow_embedding参数未设置。配置allow_embedding参数的操作,请参见上文步骤一

  • 无法显示大盘数据。无法显示大盘内容

    内嵌大盘情况下,Cookie无法写入导致,可能原因如下:

    • 跨域,即根域名不同时,默认配置无法写入Cookie。

    • cookie_samesite参数设置为none,但是cookie_secure参数设置为false

    • 域名为HTTP。由于cookie_secure参数无法在HTTP下生效,因此域名不支持HTTP。

    解决方案:参考上文步骤一重新配置Grafana参数。

  • 通过共享连接访问大盘时页面报错如下:页面报错2

    可能原因:

    • 浏览器版本过低。

    • 内嵌大盘的情况下浏览器配置导致。

      解决方案:

      1. 查看Cookie使用的配置,允许使用Cookie。

      2. 若使用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,然后删除。显示失效key

  • 本页导读 (1)
文档反馈