如何将本地Grafana仪表盘接入公网以嵌入外部网站?
如何将本地Grafana仪表盘接入公网以支持iFrame嵌入
方案一:将Grafana部署到Google Cloud(推荐,长期稳定使用)
因为你的网站已经部署在Google Cloud,将Grafana迁移到同环境能避免跨域问题,且稳定性更高:
- 备份本地配置与仪表盘
- 导出本地仪表盘:进入Grafana界面→目标仪表盘→「设置」→「导出」,保存JSON文件。
- 备份已修改的
custom.ini文件,确认其中allow_embedding = true已开启。
- 在Google Cloud部署Grafana
- 使用Compute Engine虚拟机:
- 创建Ubuntu系统的虚拟机,登录后执行命令安装Grafana:
sudo apt-get update && sudo apt-get install grafana - 将本地备份的
custom.ini替换虚拟机内的/etc/grafana/grafana.ini,修改root_url为虚拟机的公网IP或绑定的域名,例如:root_url = http://[你的公网IP]:3000/。 - 启动并设置开机自启Grafana服务:
sudo systemctl start grafana-server sudo systemctl enable grafana-server - 配置防火墙规则:在Google Cloud控制台添加规则,允许3000端口的入站流量(建议限制来源为你的网站IP范围,提升安全性)。
- 创建Ubuntu系统的虚拟机,登录后执行命令安装Grafana:
- 使用Cloud Run(无服务器方案):
- 编写Dockerfile,基于官方Grafana镜像,复制你的
custom.ini到容器内的/etc/grafana/grafana.ini。 - 构建镜像并推送到Google Container Registry,再在Cloud Run部署该镜像,设置端口为3000并允许外部访问。
- 编写Dockerfile,基于官方Grafana镜像,复制你的
- 使用Compute Engine虚拟机:
- 导入仪表盘并测试嵌入
- 访问部署后的Grafana公网地址,登录后导入之前导出的JSON仪表盘文件。
- 将该公网仪表盘URL替换原本地地址,嵌入到网站的iFrame中即可。
方案二:内网穿透工具临时暴露本地Grafana(适合测试场景)
如果只是临时验证嵌入效果,可使用内网穿透工具快速将本地Grafana暴露到公网:
- 安装ngrok后,执行命令:
ngrok http 3000 - 命令执行后会生成一个临时公网URL(如
https://xxxx-xx-xx-xx-xx.ngrok.io),修改本地custom.ini的root_url为该URL,重启Grafana服务。 - 用这个临时公网URL嵌入到iFrame中测试即可。
注意:免费版ngrok的URL会随机变化,且有流量限制,不适合长期使用。
关键注意事项
- 安全加固:不要开放Grafana公网访问给所有人,建议保留Grafana身份验证,或通过防火墙限制仅允许你的网站IP访问,也可使用Grafana嵌入令牌控制访问权限。
- 跨域配置:若网站与Grafana不在同一域名下,需在
custom.ini中设置cookie_samesite = none,避免跨域Cookie问题。
内容的提问来源于stack exchange,提问作者billha
相关产品推荐
相关产品推荐

