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 标签页:
- 点击 Select(或 Add host groups)
- 选择 Grafana 需要查看的主机组
- 权限设为 Read(只读)
- 若有子组,勾选 Include subgroups
- 点击 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
- 搜索 Zabbix
- 选择 Zabbix(alexanderzobnin 插件)
- 点击 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 保存并测试
- 点击 Save & test
- 成功时显示:Zabbix API version 6.0.46(或对应版本号)
四、创建 Dashboard 验证
- Dashboards → New → New dashboard
- Add visualization
- Data source 选择刚创建的 Zabbix 数据源
- Query 模式选择 Metrics 或 Items
- 依次选择 Group → Host → Item
- 出现曲线数据即表示配置成功
五、配置速查
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 报认证失败
- 用
igo-granfa在 Zabbix 网页登录验证密码 - Grafana 中 Reset 密码后重新输入并 Save
- 确认用户组对目标主机组有 Read 权限
Q4:Dashboard 中看不到主机
- 检查
igo-granfa-group的 Permissions 是否包含对应主机组 - 确认勾选了 Include subgroups
- 在 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/ 前缀的路径。