Grafana:web项目的仪表盘嵌入

需求描述

需要将Grafana中的仪表盘直接取出,嵌入到web项目中作为图表展示。

核心问题

1. 在web项目中,需要登录Grafana后才能显示图表

2. 在web项目中,仪表盘有效期过短,失效后显示NoData

解决方法

1. 配置匿名登录

在配置匿名登录时需要同时修改两个配置文件中的内容(Linux)

名称

grafana.ini

defaults.ini

位置

/etc/grafana/grafana.ini

/usr/share/grafana/conf/defaults.ini

(根据自己Grafana安装的位置找)

内容

######### Anonymous Auth #########
[auth.anonymous]
# enable anonymous access
;enabled = true

 

# specify organization name that should be used for unauthenticated users
;org_name =
YOUR ORG NAME

# specify role for unauthenticated users
;org_role = Viewer

######### Anonymous Auth #########
[auth.anonymous]
# enable anonymous access
enabled = true

 

# specify organization name that should be used for unauthenticated users
org_name =
YOUR ORG NAME

# specify role for unauthenticated users
org_role = Viewer

 

# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
allow_embedding =
true

 

 

 

 

 

 

 

 

 

 

 

 

这里要特别注意YOUR ORG NAME是你在Grafana里添加的组织名称,并不是随意命名,否则还是需要登录的,具体位置如下: 

Grafana:web项目的仪表盘嵌入

另外,在我的web项目里使用<iframe>展示图表,allow_embedding = true才可以显示出来。

配置完成后需要重启Grafana,重启命令是service grafana-server restart,有的博客里贴的是systemctl restart grafana-server,反正就是必须重启,不然更改的配置不生效。

2. 主题色调整

在更改配置并完成重启后,比较奇怪的是,图表底色全变成白色了,和web页面深色菜单甚是不搭。改颜色,位置如图,Light切换成Dark就好了。

Grafana:web项目的仪表盘嵌入

3. 工具条隐藏

为了进一步像模像样地伪装,还需要把工具条也藏起来,不然就会变成这样:

Grafana:web项目的仪表盘嵌入

只需要在URL后面加上kiosk就好:

只隐藏左侧工具条:YOUR URL+&kiosk=tv

全部隐藏:YOUR URL+&kiosk

关于这个URL,官方方式是通过分享按钮复制,但是会存在from-to的时长限制,没过多久就失效了。有文档说可以设置快照的时长为永远就不会出现过期的情况,但我操作后貌似没用,如果有会的大佬请教教我~所以直接把后面关于时长的部分去掉就好,最终经过手动打码后的URL形式就是http://***.***.***.**:3000/d/*********/shu-ju-ku-jie-kou-odizhan-shi?orgId=1&kiosk

Grafana:web项目的仪表盘嵌入

END

我的疑惑

匿名登录到底是个什么登录,内部机制是什么样的?项目写完再研究吧~