【基于智能监控系统的配置问题】6、如何生成单页的监控界面

好问题——这是典型的"内部工具→给领导看"的场景。你现在的 Grafana 界面全是管理菜单、Search 框、Cancel/Save 按钮,领导看了会懵。目标是让他看到干净的仪表盘、只读、无侧栏、无登录

Grafana 原生提供了几种方案,从简单到讲究我全给你梳理一遍,直接给你可用的配置。

方案对比(一眼选)

方案 上手难度 用户体验 安全性 适用场景
Kiosk 模式 URL ★☆☆ 全屏无侧栏 依赖登录 领导有账号 / 大屏值班室
匿名访问 + Kiosk ★★☆ 免登录直接看 需网络隔离 领导没账号,最常用
Public Dashboard ★☆☆ 一个公开链接 Grafana 官方公开分享 需要外部分享
iframe 嵌入自有页面 ★★★ 完全定制 灵活 已有内部门户
Snapshot 快照 ★☆☆ 静态数据 时点截图 汇报会用

我推荐方案二(匿名访问 + Kiosk 模式),最贴合你的场景——领导打开一个链接就是干净大屏,什么都不用点。

方案一:Kiosk 模式(最简单)

不改任何配置,只在 URL 末尾加参数:

http://172.16.0.8:4444/d/仪表盘ID/winserver19-1-3?kiosk

三种模式,从多到少:

  • ?kiosk=tv —— 隐藏侧栏,保留顶栏(能切时间范围)
  • ?kiosk?kiosk=1 —— 全部隐藏,纯净大屏(推荐给领导)
  • 不加参数 —— 完整管理界面

测试:现在这个页面 URL 末尾加 ?kiosk 刷新看看效果。不满意可以再切 ?kiosk=tv

问题在于领导还是要先登录。想免登录看方案二。

方案二:匿名访问 + Kiosk(推荐)

给"来看仪表盘"这件事开一个只读的匿名通道,领导打开链接直接进。

步骤 1:找到 Grafana 配置文件

Grafana 的 grafana.ini,常见位置:

# Linux 包安装
/etc/grafana/grafana.ini
# Docker 部署(宝塔一键那种)
/www/wwwroot/grafana/grafana.ini  # 或容器里 /etc/grafana/grafana.ini
# 你的路径按实际找:
find / -name grafana.ini 2>/dev/null

步骤 2:改配置开匿名

打开 grafana.ini,找到 [auth.anonymous] 段(没有就自己加),改成:

[auth.anonymous]
enabled = true
# 匿名用户属于哪个组织,默认就叫 Main Org.
org_name = Main Org.
# 关键:给只读权限,防止匿名用户改仪表盘
org_role = Viewer
# 隐藏未登录时右下角的"登录"提示(可选)
hide_version = true

步骤 3:重启 Grafana

# systemd
systemctl restart grafana-server
# 或 Docker
docker restart grafana
# 或宝塔面板对应服务点重启

步骤 4:把仪表盘设为公开可见(组织内)

登录你自己的管理员账号 → 打开这个仪表盘 → 右上角 ShareLink 标签 → 复制链接。

然后到仪表盘的 Settings(齿轮图标)→ Permissions,确认 Viewer 角色能读(默认就能读,除非你显式禁用过)。

步骤 5:给领导发的最终链接

在方案一的链接后面拼上 ?kiosk

http://172.16.0.8:4444/d/仪表盘ID/winserver19-1-3?kiosk

领导打开就是全屏、只读、无侧栏、无登录的大屏。

⚠️ 安全前提:匿名访问意味着内网里任何能打开这个 URL 的人都能看。你现在 IP 是 172.16.0.8,是内网地址,这没问题。但千万别把 4444 端口暴露到公网,否则全世界都能看你服务器的 CPU/内存。要给外部人看,用方案三或加 Nginx 反代 + IP 白名单。

方案三:Public Dashboard(Grafana 10+ 官方公开分享)

如果领导在外网,用官方的 Public Dashboard 功能,会生成一个专门的公开 URL、只读、可以设过期时间:

  1. 打开仪表盘 → SharePublic dashboard 标签
  2. 首次会让你启用这个功能,勾选"Acknowledge",点 Generate public URL
  3. 得到一个类似的链接:http://你的域名:4444/public-dashboards/xxxxxxxx
  4. 领导用这个链接打开,Grafana 会自动隐藏所有管理界面,就是大屏

前提:Grafana 版本要 ≥ 10.0(推荐 10.4+,稳定版)。看你界面风格是新版应该没问题。可以在配置里限制 public_dashboards.enabled = true

方案四:iframe 嵌入你自己的门户

如果你想做一个"公司驾驶舱"页面,把 Grafana 面板嵌进去 + 加个 logo/标题/其他数据,用 iframe:

步骤 1:允许 iframe 嵌入

grafana.ini

[security]
allow_embedding = true
# 如果 iframe 页面和 Grafana 不同域,还要开 cookie 策略
cookie_samesite = none
cookie_secure = true    # 需 HTTPS

步骤 2:拿到面板嵌入链接

打开仪表盘中你想嵌入的那个 panel(比如 CPU 那张卡)→ 右上角三个点 → ShareEmbed 标签 → 复制 iframe 代码,类似:

<iframe 
  src="http://172.16.0.8:4444/d-solo/仪表盘ID/winserver19-1-3?orgId=1&panelId=2&kiosk"
  width="450" height="200" frameborder="0">
</iframe>

注意是 /d-solo/(单 panel)不是 /d/(整个仪表盘)。

步骤 3:做你的门户 HTML

给你写一个模板,直接可用:用法:

  1. 打开这个 HTML 编辑,把每个 iframesrc 换成你从 Grafana 里 Share → Embed 复制的地址
  2. 传到你 Nginx 目录(比如 /www/wwwroot/dashboard/index.html
  3. 领导访问 http://172.16.0.8/dashboard/ 就是自定义驾驶舱
  4. 前提:grafana.iniallow_embedding = true 必须开

方案五:Snapshot 快照(只做汇报)

如果只是特定时刻的报告(比如月度汇报),用 Share → Snapshot → Local Snapshot,Grafana 会把当前时刻的数据固化成一个静态快照页面,链接可以随便发,数据不再变化。适合 PPT 汇报,不适合日常监控。

最后给你的组合拳建议

领导日常想扫一眼 → 方案二(匿名 + Kiosk),一个链接直接看 需要给外部看/发到手机 → 方案三(Public Dashboard) 想做公司统一驾驶舱,整合多个系统 → 方案四(iframe 门户),我给你的 HTML 是起点

先试试方案一(就现在这个链接末尾加 ?kiosk 刷新),看下效果领导能不能接受,能接受就走方案二配置匿名,这是最快的路径。

我给你打包了驾驶舱 HTML 模板:想哪个方案先试哪个跟我说,配置文件位置或者 iframe 拿链接卡住的话截图给我,我看着帮你调。

你这个仪表盘用来给领导看正合适——右上角已经是全屏播放模式了(< ⏸ > ⛶ 那几个按钮就是),说明基础的干净展示已经调好。现在只差免登录

一步步来。

一、开匿名访问(让领导免登录)

步骤 1:找到 grafana.ini

find / -name grafana.ini 2>/dev/null

常见位置:

  • 直接装:/etc/grafana/grafana.ini
  • Docker:进容器 docker exec -it grafana cat /etc/grafana/grafana.ini
  • 宝塔一键:/www/server/grafana/conf/grafana.ini 或类似

步骤 2:编辑配置

vi /etc/grafana/grafana.ini    # 按你的实际路径改

找到 [auth.anonymous] 段(用 /auth.anonymous 搜索),改成:

[auth.anonymous]
enabled = true
org_name = Main Org.
org_role = Viewer
hide_version = true

同一个文件里,找到 [users] 段,追加一行让匿名用户默认中文(对齐你现在的中文界面):

[users]
default_language = zh-Hans

再往下找 [security] 段,如果你之后想把这个仪表盘嵌到自己的门户页面里,顺手把这个也开了:

[security]
allow_embedding = true

保存退出。

步骤 3:重启 Grafana

# 直接装的
systemctl restart grafana-server

# Docker 的
docker restart grafana

# 宝塔面板
# 软件商店 → Grafana → 重启

步骤 4:验证匿名访问

开一个隐私/无痕浏览器窗口(这样不带你自己的登录 cookie),打开 Grafana 首页 http://172.16.0.8:4444/

  • ✅ 如果直接进首页,没让你登录 → 匿名访问成功
  • ❌ 如果还是登录页 → 配置没生效,看下一段"排错"

二、拼出给领导的最终链接

看你截图,你现在已经在播放模式(右上角有 < ⏸ > 上一页/暂停/下一页按钮,还有全屏图标),这个模式很适合领导看。

找到当前仪表盘的 URL

看你截图的浏览器 URL(虽然截图里看不到),应该长这样:

http://172.16.0.8:4444/d/仪表盘ID/仪表盘名字

加上让它更干净的参数

在 URL 末尾拼上:

?kiosk&refresh=30s&theme=light

三个参数分别做什么:

  • kiosk → 隐藏侧栏和顶栏,纯净大屏
  • refresh=30s → 每 30 秒自动刷新数据(领导不用手动刷)
  • theme=light → 亮色主题(跟你现在这个一致);换 theme=dark 就是深色

最终发给领导的链接示例

http://172.16.0.8:4444/d/xxxxx/zabbix-overview?kiosk&refresh=30s&theme=light

测试方法:把这个链接在隐私窗口里打开,看到的应该是——顶部只剩你截图右上那几个播放控制按钮,左侧完全没有菜单,整个页面就是仪表盘内容。这就是领导看到的样子。

三、你现在这个仪表盘已经是"轮播"的了

看你截图右上角有 < ⏸ > 按钮——你把这个仪表盘加入了 Grafana 的播放列表(Playlist)里。这功能很适合大屏轮播:多个仪表盘按顺序自动切换。

如果领导想同时看多个页面(比如服务器状态 + 网络状态 + 应用状态),把这些仪表盘都加到一个 Playlist 里,然后发给领导 Playlist 的 kiosk 链接

http://172.16.0.8:4444/playlists/play/播放列表ID?kiosk

这样领导打开一次,多个仪表盘自动轮播,值班室大屏挂着完美。

四、排错

匿名访问不生效(隐私窗口还是要求登录),最常见原因:

  1. 配置文件路径不对——你改的可能不是 Grafana 实际用的那份。查看当前使用的配置:

    # 直接装
    systemctl status grafana-server | grep -i config
    # Docker
    docker exec grafana printenv | grep -i grafana
    
  2. 没重启——改完 grafana.ini 必须重启进程,kill -HUP 不够。

  3. 有反向代理——如果 Grafana 前面挂了 Nginx,可能 Nginx 层有 Auth 拦截。查 Nginx 配置里有没有 auth_basicsatisfy any 之类。

  4. 组织名字对不上——org_name = Main Org. 里那个点和空格必须一字不差。有些安装默认组织不叫这个,可以先在 UI 里看:右上角头像 → 切换组织,看到的名字就是你要填的。

  5. 配置写错了段——enabled = true 必须在 [auth.anonymous] 段下,不能在 [auth] 段下。段名带方括号那行不能删。

一个快速判断的技巧

改完配置重启后,浏览器 URL 直接访问 http://172.16.0.8:4444/login,如果登录页右下角出现"以匿名身份继续"或类似链接,就说明匿名开成功了。

五、安全提醒(重要)

你的 IP 172.16.0.8内网地址,只有连到你们公司网络的人才能访问,这是安全的。

但千万别做这些事

  • ❌ 把 4444 端口通过路由器映射到公网
  • ❌ 用花生壳、frp 这类内网穿透工具把 Grafana 暴露到公网
  • ❌ 域名 A 记录直接指到公网服务器再反代到这个 Grafana

一旦对公网开放任何人都能看你们服务器的 CPU、内存、告警信息,这是重大安全风险。领导要在外网看的话,正确姿势是:

  1. 走公司 VPN 进内网再打开这个链接(推荐)
  2. 或者用 Grafana 内置的 Public Dashboard 功能(右上角 Share → Public dashboard),它会生成一个专门的公开链接,只暴露这一个仪表盘、只读、可以设过期时间

你现在就做这几件事

  1. 先在隐私窗口打开 http://172.16.0.8:4444/,验证是否已经能免登录进(如果之前配过就直接跳到第 3 步)
  2. 按上面步骤改 grafana.ini 三个配置段 + 重启
  3. 复制当前仪表盘 URL,加上 ?kiosk&refresh=30s&theme=light 拼成领导的链接
  4. 用隐私窗口测试链接效果满意 → 发给领导

改完卡在哪一步截图给我,或者链接打开是什么样也发我看看,我帮你调到位。

posted @ 2026-07-10 10:30  crockery  阅读(3)  评论(0)    收藏  举报