惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
小众软件
小众软件
The Cloudflare Blog
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
博客园 - 叶小钗
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Y
Y Combinator Blog
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - crockery

13-心一网络助手-XinYiNetTool 12-奥赛题库-OlympiadMath 11-核痕-KeHen 10-烽燧-FengSui 09-弈局-ChessForge 08-立方之蛇-CubeSerpent 06-纯粹数独-PureSudoku 05-砂漏-Grainfall 04-回响回廊-EchoHalls 03-烬塔-EmberTower 02-胶囊医生-DrCapsule 01-离阵-ArrowExodus 一文看懂--什么是typescript 一个项目从 0 到上线的技术路线图 windows批量部署nodeJS项目 Vue + Node + Nginx 从 0 到上线 github上有哪些star非常多的项目 一篇文章搞懂所有前端后端概念图 【基于智能监控系统的配置问题】1、zabbix部署与配置 【基于智能监控系统的配置问题】2、zabbix如何部署centos和stream9 【基于智能监控系统的配置问题】3、仪表盘的界面设定 【基于智能监控系统的配置问题】4、与grafana的连接问题 【基于智能监控系统的配置问题】5、grafana上遇到的问题 【基于智能监控系统的配置问题】6、如何生成单页的监控界面 【基于智能监控系统的配置问题】8、关于grafana的汉化问题 【基于各种多模态文件的在线预览系统】1、多模态预览 【基于各种多模态文件的在线预览系统】2、部署问题 【基于各种多模态文件的在线预览系统】3、本地磁盘挂载虚拟机 【基于各种多模态文件的在线预览系统】4、其他值得推荐的应用 【基于各种多模态文件的在线预览系统】5、出现无法访问的情况
【基于智能监控系统的配置问题】7、zabbix如何实现免登录预览...
crockery · 2026-07-10 · via 博客园 - crockery

啊哈,那就完全不一样了——Zabbix 是"必须登录"的架构,它不像 Grafana 有个能一键开启的匿名访问开关。但办法有,而且有好几个层次,我按可用性从低到高说。

一、先说结论:你有三条路

方案 领导操作 你的工作量 推荐度
共用账号 + 记住密码 需登录一次 5 分钟 ⭐⭐
给领导发链接前自动登录 免登录,但要装脚本 30 分钟 ⭐⭐⭐⭐
接 Grafana 显示 Zabbix 数据 完全免登录 1 小时 ⭐⭐⭐⭐⭐

我推荐方案三,一劳永逸——你之前已经装了 Grafana,直接接 Zabbix 数据源就行,能把这个仪表盘完整搬过去,还能免登录给领导。

先看简单的两条路。

方案一:共享只读账号 + 浏览器记住密码

Zabbix 最简单粗暴的做法,5 分钟能搞定。

步骤 1:Zabbix 建一个专用只读账号

  1. 用管理员登录 Zabbix
  2. 用户 → 用户 → 创建用户
  3. 用户名建议 leader-view 之类的
  4. 密码设一个简单的(反正只读)
  5. 权限(Permissions) 标签 → 选 User(普通用户角色,不能改配置)
  6. 主机组权限 → 给它读所有主机组的权限
  7. 保存

步骤 2:给领导发的三个东西

  • Zabbix 地址(比如 http://172.16.0.8/zabbix
  • 账号:leader-view
  • 密码:xxxxx

告诉领导:"第一次登录时勾选保持登录,浏览器会记住,以后直接打开这个链接就是这个页面。"

步骤 3:让领导只看仪表盘

Zabbix 里,找到你截图这个仪表盘的 URL,一般是:

http://你的zabbix地址/zabbix.php?action=dashboard.view&dashboardid=XXX

领导记录这个 URL,登录一次后浏览器加书签,以后每次点书签直接进这个页面。

局限:换电脑、清缓存、Cookie 过期后要重新输密码。领导觉得麻烦的话看方案二。

方案二:Zabbix API + 自动登录中转页

在你们内网建一个简单的中转页面,领导点击 → 页面自动帮他登录 → 跳转到仪表盘。领导整个过程无感。

原理

Zabbix 网页登录本质是提交一个 POST 表单(usernamepasswordenter=Sign in),登录成功后服务器返回一个 zbx_session Cookie。有这个 Cookie 就是登录状态。

我们做一个小的 PHP/Python 中转页,在服务器端替领导登录、把 Cookie 塞给领导浏览器,再跳转到仪表盘。

步骤 1:还是先建只读账号(同方案一步骤 1)

步骤 2:写中转页

如果你有 PHP 环境(宝塔面板一装就有),最简单:### 部署(宝塔 PHP 环境)

  1. 宝塔 → 网站 → 添加站点,域名随便填个 dashboard.local,绑到内网 IP
  2. zabbix-leader-login.php 传到站点根目录,改成 leader.php
  3. 编辑文件里 4 个 CONFIG 变量:
    • $ZBX_URL 你 Zabbix 的地址
    • $USERNAME / $PASSWORD 只读账号
    • $DASHBOARD_URL 那个仪表盘的路径
  4. 发给领导的链接:http://172.16.0.8/leader.php

关键前提

PHP 中转页和 Zabbix 必须在同一个域名/IP 下(比如都用 172.16.0.8,路径不同),否则 Cookie 跨域会失败,领导跳过去还是要登录。

如果你的 Zabbix 和中转页不在同一个域名,只能走方案三或用 Nginx 反代把它们放到同一个域名下。

方案三:Grafana 接 Zabbix 数据源(强烈推荐)

你截图右上角有轮播控制按钮,说明你已经玩 Zabbix 玩得挺熟了。但给领导看这件事,Grafana 天生更合适——Zabbix 是运维工具,Grafana 是展示工具。而且你之前已经装了 Grafana,成本很低。

效果

  • 领导免登录(Grafana 匿名访问,我上一条消息里讲过)
  • Zabbix 里所有数据都能在 Grafana 里画出来,样式比 Zabbix 好看得多
  • 你可以给不同领导做不同视角的仪表盘

步骤 1:Grafana 装 Zabbix 数据源插件

Grafana 官方的 Zabbix 插件 是免费的、开源的、维护得很好。

# Grafana 命令行装插件
grafana-cli plugins install alexanderzobnin-zabbix-app

# 或 Docker 环境
docker exec grafana grafana-cli plugins install alexanderzobnin-zabbix-app
docker restart grafana

步骤 2:Grafana 里启用插件

  1. 登录 Grafana → 左侧 管理 → 插件和数据
  2. 找到 Zabbix,点 Enable

步骤 3:加数据源

  1. 左侧 管理 → 数据源 → 添加数据源
  2. Zabbix
  3. 填 Zabbix API 地址(比如 http://172.16.0.8/zabbix/api_jsonrpc.php
  4. Username / Password 填你 Zabbix 里的只读账号
  5. Save & Test,看到绿勾就通了

步骤 4:导入现成的 Zabbix 仪表盘模板

Grafana 官网有几百个现成的 Zabbix 仪表盘,导入就用:

  1. 打开 grafana.com/grafana/dashboards,筛选 Zabbix 数据源
  2. 挑一个你喜欢的(比如 "Zabbix Server Dashboard"、"Windows Server Overview")
  3. 复制它的 ID(比如 18345
  4. 你的 Grafana → 左侧 仪表板 → 新建 → Import
  5. 输入那个 ID,选你的 Zabbix 数据源,Import
  6. 得到跟你截图里那样甚至更漂亮的仪表盘

步骤 5:套用之前的匿名 + Kiosk 方案

现在这个 Grafana 仪表盘就可以按我上一条消息说的:

  • grafana.ini[auth.anonymous] enabled = true
  • 链接末尾加 ?kiosk&refresh=30s
  • 发给领导

完美闭环:数据源还是 Zabbix,展示层是 Grafana,领导免登录看。

总结建议

  • 急着今天就要给领导看 → 方案一,共享账号 + 浏览器记住密码,5 分钟解决
  • 想让领导长期无感看 → 方案二,PHP 自动登录中转页,30 分钟
  • 有半天时间做正经点的 → 方案三,Grafana 接 Zabbix,最好看最省心,跟你之前的 Grafana 匿名访问方案完美衔接

给你的 PHP 中转页文件:选哪条路你说一声,我可以帮你把具体细节调到位。方案三我强烈推荐——你之前已经在 Grafana 上部署过东西了,配置成本最低,效果最好。

<?php
/**
 * Zabbix 自动登录中转页 —— 让领导免登录看仪表盘
 *
 * 部署:
 *   1. 把这个文件放到你 Web 服务器根目录,比如 /www/wwwroot/dashboard/leader.php
 *   2. 修改下面 CONFIG 里的 4 个变量
 *   3. 发给领导的链接:http://你的服务器/dashboard/leader.php
 *
 * 安全提醒:
 *   - 只在内网使用!不要暴露到公网
 *   - 建议 Nginx 加 IP 白名单,只放行领导办公室的 IP
 *   - 这个文件里存的是明文密码,权限设 600,只有 root 能读:chmod 600 leader.php
 */

// ==================== CONFIG ====================
$ZBX_URL = 'http://172.16.0.8/zabbix';     // 你的 Zabbix 地址,末尾不要 /
$USERNAME = 'leader-view';                  // 只读账号
$PASSWORD = 'ChangeMe123!';                 // 密码
$DASHBOARD_URL = '/zabbix.php?action=dashboard.view&dashboardid=1';   // 领导要看的仪表盘 URL 后半段
// ================================================

// 用 cURL 模拟表单登录,拿 Cookie
$ch = curl_init();
$cookieJar = tempnam(sys_get_temp_dir(), 'zbx_');

curl_setopt_array($ch, [
    CURLOPT_URL => $ZBX_URL . '/index.php',
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query([
        'name' => $USERNAME,
        'password' => $PASSWORD,
        'autologin' => '1',
        'enter' => 'Sign in',
    ]),
    CURLOPT_COOKIEJAR => $cookieJar,
    CURLOPT_COOKIEFILE => $cookieJar,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,   // 内网自签证书时用
]);

curl_exec($ch);
curl_close($ch);

// 读取 cookie 文件,找到 zbx_session
$cookies = file_get_contents($cookieJar);
unlink($cookieJar);

if (preg_match('/zbx_session\s+(\S+)/', $cookies, $m)) {
    $sessionCookie = trim($m[1]);
    // 把 Cookie 种到领导浏览器上(同域名下有效)
    // 注意:中转页和 Zabbix 必须在同一个域名/IP 下,否则 Cookie 跨域无效
    setcookie('zbx_session', $sessionCookie, [
        'expires' => time() + 3600 * 24 * 7,   // 7 天
        'path' => '/',
        'httponly' => true,
    ]);
    // 跳转到仪表盘
    header('Location: ' . $ZBX_URL . $DASHBOARD_URL);
    exit;
} else {
    // 登录失败
    http_response_code(500);
    echo "自动登录失败,请联系管理员。<br>";
    echo "如需调试,检查 Zabbix 账号密码是否正确。";
}