将Grafana嵌入自己的应用
什么是Grafana
Grafana是一款强大的可视化工具,无论数据存储在哪里,都可以查询、可视化、警报和理解您的数据。使用Grafana,您可以通过美丽、灵活的仪表板创建、探索和共享所有数据。
场景
在很多项目中,我们希望将统计或者监控图标嵌入到自己的Web项目中,无需跳转和登陆Grafana就可以查看相关图表。
操作步骤
版本:笔者现在使用的Grafana版本为8.2.5
整个实现过程并不复杂,总的来说分为三步:
- 【Grafana配置】开启匿名登陆,开启允许嵌入
- 【Grafana重启】重启Grafana-server
- 【自己应用开发】将Dashboard或者Panel嵌入页面
1. 【Grafana配置】开启匿名登陆,开启允许嵌入
配置文件路径,我是采用rpm安装的,配置文件位置在/etc/grafana/grafana.ini
# 允许嵌入
allow_embedding = true
# 允许匿名登录
[auth.anonymous]
# enable anonymous access
enabled = true
# specify organization name that should be used for unauthenticated users
org_name = Main Org.
# specify role for unauthenticated users
org_role = Viewer
2. 【Grafana重启】重启Grafana-server
sudo systemctl restart grafana-server
3. 【自己应用开发】将Dashboard或者Panel嵌入页面
<html>
<!-- 单个图表嵌入语句-->
<iframe src="http://grafana_host:3000/d-solo/sngTFUt7k/myapp-test?orgId=1&refresh=5s&panelId=8" width="450" height="200" frameborder="0"></iframe>
<!-- 整个Dashboard嵌入语句-->
<iframe src="http://grafana_host:3000/d/qagsAO5Vk/cm?orgId=1" width="100%" height="100%" frameboader="0"></iframe>
</html>
写在最后:
Grafana开启匿名登陆是否意味着只要能访问 http://grafana_host:3000
的人就可以匿名查看所有Dashboard?
不是
匿名用户的查看和编辑范围通过 org_name 和 org_role 来控制,org_name是匿名用户所在组织。
每个组织都包含他们自己的仪表盘、数据源和配置,这些不能在组织之间共享共用。虽然用户可能属于一个以上的组织,但在多租户部署中最常使用多个组织。
Main Org.
是默认组织,如果在生产使用匿名登陆,请务必新建组织以控制匿名用户的访问范围。