igozhang

——

    Grafana接入Zabbix数据源配置指南

    本文说明如何在 Grafana v11.5.2 中添加 Zabbix 6.0.46 数据源,包含在 Zabbix 侧创建专用只读账号的完整 UI 操作步骤。

    适用环境:

    项目 版本 / 地址
    Zabbix 6.0.46,https://zabbix-igo.igozhang.cn/
    Grafana v11.5.2(已安装 alexanderzobnin Zabbix 插件)
    专用账号 igo-granfa

    一、架构说明

    ┌─────────────┐    HTTPS API (JSON-RPC)    ┌──────────────────┐
    │   Grafana   │ ─────────────────────────► │  Zabbix Server   │
    │  grafana67  │   /api_jsonrpc.php         │  6.0.46          │
    └─────────────┘                            └──────────────────┘
    
    • Grafana 通过 Zabbix JSON-RPC API 拉取主机、监控项、告警等数据。
    • 建议使用 专用只读账号,不要使用 admin
    • API 请求由 Grafana 服务端 发起,不是浏览器直连。

    二、Zabbix 侧:创建专用账号

    2.1 创建用户组

    路径:Administration → User groups → Create user group

    字段 建议值
    Group name igo-granfa-group
    Frontend access System default 或 Internal
    Debug mode Disabled
    Status Enabled

    切换到 Permissions 标签页:

    1. 点击 Select(或 Add host groups)
    2. 选择 Grafana 需要查看的主机组
    3. 权限设为 Read(只读)
    4. 若有子组,勾选 Include subgroups
    5. 点击 Update 保存

    主机组数据权限在用户组上配置,不在单个用户上配置。只给需要展示的主机组授权即可。


    2.2 确认用户角色

    路径:Administration → User roles

    Grafana 只读场景使用内置 User role(类型为 User)即可,具备 API 读取能力。

    检查项 要求
    角色类型 User(非 Admin / Super admin)
    Access to API Enabled

    2.3 创建用户

    路径:Administration → Users → Create user

    User 标签页

    字段
    Username igo-granfa
    Name / Last name 按需填写,如 Grafana / ReadOnly
    Groups 点击 Select,加入 igo-granfa-group必填
    Password 设置强密码(两次输入一致)
    Auto-login 不勾选

    若提示 Field "user_groups" is mandatory,说明 Groups 未选择。
    若提示 Field "roleid" is mandatory,需切换到 Permissions 标签选择角色。

    Permissions 标签页

    字段
    Role User role

    页面中可能显示 All groups → None,这是正常现象。下方有说明:

    Permissions can be assigned for user groups only.

    表示主机组权限来自 User 标签页中加入的用户组,无需在此单独配置。

    点击 Add 保存用户。


    2.4 验证 Zabbix 账号

    使用无痕窗口登录 Zabbix,用 igo-granfa 账号验证:

    检查项 预期
    Monitoring → Hosts 能看到授权范围内的主机
    Monitoring → Latest data 有监控数据
    Configuration 无法修改配置(User 角色正常表现)

    也可在 Grafana 服务器上测试 API 登录:

    curl -X POST "https://zabbix-igo.igozhang.cn/api_jsonrpc.php" \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
          "username": "igo-granfa",
          "password": "<你的密码>"
        },
        "id": 1
      }'
    

    成功时返回 result 字段为 auth token 字符串。


    三、Grafana 侧:添加 Zabbix 数据源

    3.1 进入添加页面

    路径:Connections → Add new connection

    1. 搜索 Zabbix
    2. 选择 Zabbix(alexanderzobnin 插件)
    3. 点击 Add new data source

    若已有数据源,路径为:Connections → Data sources → 选择已有项或 Add new data source


    3.2 Connection(连接)

    字段
    Name 建议 Zabbix-IGO 或按基地命名
    Default 按需开启
    URL https://zabbix-igo.igozhang.cn/api_jsonrpc.php

    注意:

    • URL 必须包含 /api_jsonrpc.php
    • 本环境使用子域名部署,不需要 /zabbix/ 前缀
    • 不要使用 localhost(除非 Grafana 与 Zabbix 同机部署)

    3.3 Authentication(HTTP 认证)

    字段
    Authentication methods No Authentication

    此处指 Grafana 到 Zabbix Web 服务器之间的 HTTP Basic 认证,一般保持默认即可。

    TLS settings:

    • 使用正规 CA 签发的证书:无需勾选
    • 使用自签名证书:勾选 Skip TLS certificate validation

    3.4 Zabbix Connection(Zabbix API 登录)

    字段
    Auth type User and password
    Username igo-granfa
    Password 填写 Zabbix 中为该用户设置的密码

    若密码栏显示 configured,点击 Reset 后重新输入,再保存。


    3.5 Additional settings(建议配置)

    展开 Additional settings

    Trends:

    字段 建议值
    Enable Trends 开启
    After 7d
    Range 4d

    Other:

    字段 建议
    Disable acknowledges for read-only users 建议开启

    Direct DB Connection: 初次配置保持关闭,先通过 API 验证连通性。需要查询超长历史数据时再单独配置 MySQL/PostgreSQL 数据源。


    3.6 保存并测试

    1. 点击 Save & test
    2. 成功时显示:Zabbix API version 6.0.46(或对应版本号)

    四、创建 Dashboard 验证

    1. Dashboards → New → New dashboard
    2. Add visualization
    3. Data source 选择刚创建的 Zabbix 数据源
    4. Query 模式选择 MetricsItems
    5. 依次选择 Group → Host → Item
    6. 出现曲线数据即表示配置成功

    五、配置速查

    Zabbix:
      用户组  igo-granfa-group  →  主机组 Read 权限
      用户    igo-granfa        →  User role + 上述用户组
    
    Grafana:
      URL       https://zabbix-igo.igozhang.cn/api_jsonrpc.php
      Auth      User and password
      Username  igo-granfa
    

    六、常见问题

    Q1:创建用户报 user_groups / roleid is mandatory

    • Groups:在 User 标签页点击 Select 加入用户组
    • Role:在 Permissions 标签页选择 User role

    Q2:Permissions 显示 All groups → None

    正常现象。主机组权限在用户组(igo-granfa-group)上配置,不在用户 Permissions 页配置。

    Q3:Save & test 报认证失败

    1. igo-granfa 在 Zabbix 网页登录验证密码
    2. Grafana 中 Reset 密码后重新输入并 Save
    3. 确认用户组对目标主机组有 Read 权限

    Q4:Dashboard 中看不到主机

    1. 检查 igo-granfa-group 的 Permissions 是否包含对应主机组
    2. 确认勾选了 Include subgroups
    3. 在 Zabbix 中用该账号登录,确认 Monitoring → Hosts 能看到主机

    Q5:URL 路径怎么确认

    在任意能访问 Zabbix 的机器上执行:

    curl -X POST "https://zabbix-igo.igozhang.cn/api_jsonrpc.php" \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"apiinfo.version","params":[],"id":1}'
    

    返回版本号则路径正确。若 404,再尝试带 /zabbix/ 前缀的路径。


    七、相关文档

    MP3