什么是Grafana

Grafana是一款强大的可视化工具,无论数据存储在哪里,都可以查询、可视化、警报和理解您的数据。使用Grafana,您可以通过美丽、灵活的仪表板创建、探索和共享所有数据。

场景

在很多项目中,我们希望将统计或者监控图标嵌入到自己的Web项目中,无需跳转和登陆Grafana就可以查看相关图表。

操作步骤

版本:笔者现在使用的Grafana版本为8.2.5

整个实现过程并不复杂,总的来说分为三步:

  1. 【Grafana配置】开启匿名登陆,开启允许嵌入
  2. 【Grafana重启】重启Grafana-server
  3. 【自己应用开发】将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.是默认组织,如果在生产使用匿名登陆,请务必新建组织以控制匿名用户的访问范围。