跳到主要内容

匿名限时分享

通过一条会过期的链接分享某一个仪表盘,不用给对方开账号。

这页办完你会得到:一条会自动失效的链接,对方不用夜莺账号就能打开指定的那一个仪表盘; 到期之前你随时可以注销它。

1. 生成一条限时链接​

入口不在仪表盘详情页,而在列表页:数据查询 → 仪表盘,找到那一行, 点 公开 列里的铅笔图标。

弹窗里从上往下:

选项说明
公开选 公开,下面才会出现类型
类型匿名访问 / 登录访问 / 授权访问。要发给没有账号的人,选匿名访问
备注必填。一个板可能同时挂着好几条链接,没有备注就分不清该注销哪条
有效期数字 + 单位(小时 / 天 / 月 / 年),默认 30 天
主题跟随系统 / 暗色 / 亮色。只影响复制出来的链接,不影响令牌本身

选中「匿名访问」后,弹窗下半部分展开「生成分享链接(匿名访问)」。填好备注和有效期, 点 生成链接。

如果这个仪表盘在库里还不是「公开 + 匿名访问」,会先弹一个确认框问你要不要一起改—— 确认后先保存公开设置,再签发链接。不要跳过这一步:链接一经签发就与公开设置无关, 公开设置不同步,列表里的「公开」列看不出这个板已经有对外链接了。

预期结果:下方表格里多出一行,含备注、链接、过期时间、创建人。链接长这样:

https://<你的夜莺地址>/dashboards/share/<仪表盘 id>?__token=<uuid>

2. 发出去之前自己验一遍​

用无痕窗口打开这条链接。应该直接渲染出仪表盘,没有左侧菜单,也不跳登录页。

跳到登录页说明令牌没生效——最常见的原因是复制时把 ?__token=... 这段漏掉了。

3. 到期前提前注销​

回到同一个弹窗,在链接表格里点 注销,这条链接立刻失效,动作不可撤销。

已经过期的链接不会自动从表格里消失(显示「已过期」),可以顺手一起清掉。

链接持有者能做什么​

能做的:

  • 在有效期内免登录打开这一个仪表盘;
  • 查询这个板引用到的数据源——面板里写死的数据源,加上「数据源」类型变量按类型 展开出来的同类数据源。

做不到的:

  • 打开别的仪表盘。 令牌绑死一个仪表盘 id,拿一条有效链接去开别的板会被直接拒绝, 哪怕那个板自己配了匿名访问。
  • 碰板外的数据源。 请求的数据源不在这个板的引用集合里就返回 403。
  • 写任何东西。 SQL 类数据源在这条通道上被强制只读校验;代理透传只放行只读查询 端点(/api/v1/query、_search、/select/logsql/ 这类),_bulk、/-/reload 之类一律拒。

两条容易踩的:

  • 链接的有效性和「公开」设置是解耦的。 校验令牌发生在公开判定之前,所以把板改回 「不公开」并不会让已经发出去的链接失效。界面在你改类型时会提示「该仪表盘还有 N 条 在有效期内的匿名分享链接」,问你要不要一并注销——认真回答这个提示。
  • 没有「永不过期」这个选项。 有效期上限是 99 年;要长期公开就把单位选「年」, 但它仍然是一条能被注销的链接,而不是一个永久开关。

什么情况下签不出来​

  • 仪表盘用了「机器标识(Host ident)」类型的变量。 这类变量要走登录态接口,匿名 打开必然是空的,所以生成按钮被直接禁掉,提示「仪表盘已配置机器标识变量,无法匿名 访问」。想分享就先把这个变量换成普通的查询变量。
  • 仪表盘配置读不出来。 这时同样禁掉生成,提示「仪表盘配置读取失败」。这是故意的: 读不到就按「不确定 → 不允许匿名」处理。
  • 权限不够。 签发、列出、注销这三个动作都要求仪表盘写权限,并且是该业务组的 读写成员。业务组的只读成员看不到也签不了——因为能列出链接就等于能拿到一条可用的 匿名链接转发出去。

另外两种分享,性质不同​

  • 临时图链接。 即时查询里图表右上角有个分享图标,点一下把当前这条查询存成一张 临时图,给你一条 /chart/<id> 链接,不用登录也能打开(依赖 [Center.AnonymousAccess] 的 PromQuerier,默认是开的)。它没有有效期,也没有注销入口,适合当截图的替代品, 不要拿它当受控的对外分享。
  • 告警事件详情分享。 告警事件详情页也能签一条限时链接(默认 7 天),机制和这里 一样,但分享的是一条事件而不是一个仪表盘。见活跃事件与历史事件。

下一步​