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 #########
# specify organization name that should be used for unauthenticated users # specify role for unauthenticated users |
######### Anonymous Auth #########
# specify organization name that should be used for unauthenticated users # specify role for unauthenticated users
# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false. |
这里要特别注意YOUR ORG NAME是你在Grafana里添加的组织名称,并不是随意命名,否则还是需要登录的,具体位置如下:
另外,在我的web项目里使用<iframe>展示图表,allow_embedding = true才可以显示出来。
配置完成后需要重启Grafana,重启命令是service grafana-server restart,有的博客里贴的是systemctl restart grafana-server,反正就是必须重启,不然更改的配置不生效。
2. 主题色调整
在更改配置并完成重启后,比较奇怪的是,图表底色全变成白色了,和web页面深色菜单甚是不搭。改颜色,位置如图,Light切换成Dark就好了。
3. 工具条隐藏
为了进一步像模像样地伪装,还需要把工具条也藏起来,不然就会变成这样:
只需要在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
END
我的疑惑
匿名登录到底是个什么登录,内部机制是什么样的?项目写完再研究吧~