运维养龙虾--用 AI 驾驭 Zabbix:zabbix-mcp-server 深度指南

本文基于开源项目 mpeirone/zabbix-mcp-server,介绍如何通过 MCP(Model Context Protocol)协议将 Zabbix 监控系统与 AI 助手深度集成,并详细讲解 Zabbix API Token 的获取方式。


一、背景:为什么需要 AI + Zabbix?

Zabbix 是企业级 IT 监控的主流开源平台,拥有强大的数据采集、告警和可视化能力。但传统运维流程中,排查告警、查询主机状态、分析趋势数据往往需要大量的手工操作------登录 Web 界面、翻看图表、比对配置......

zabbix-mcp-server 打破了这道壁垒。它基于 Model Context Protocol(MCP) 协议,将 Zabbix 的 40+ 个 API 能力封装成可被 AI 助手直接调用的工具(Tool)。借助它,你可以对 AI 说一句话:

"帮我找出过去一小时内所有 CPU 告警的主机,并统计触发次数。"

AI 就会自动调用 Zabbix API,返回结构化结果------不再需要你一行一行敲命令。


二、项目概览

属性 信息
项目地址 https://github.com/mpeirone/zabbix-mcp-server
开发语言 Python 3.10+
核心依赖 FastMCP、python-zabbix-utils
传输方式 STDIO(默认)/ HTTP
许可证 MIT License
工具数量 40+

核心功能一览

功能模块 能做什么
🏠 主机管理 获取、创建、更新、删除主机
👥 主机组管理 主机组的增删改查
📊 监控项管理 监控项配置与查询
⚠️ 触发器管理 触发器的创建与维护
📋 模板管理 模板操作
🚨 问题/事件 获取当前问题、历史事件、确认事件
📈 数据查询 历史数据、趋势数据
👤 用户管理 用户账户管理
🔗 代理管理 Zabbix Proxy 操作
🔧 维护管理 维护窗口配置
📊 其他 图形配置、自动发现、配置导入导出

三、Zabbix API Token 获取方法(重点)

在使用 zabbix-mcp-server 之前,你需要先获取 Zabbix 的 API Token(或用户名/密码)。下面介绍两种主流方式:

方式一:通过 Web 界面创建 API Token(Zabbix 5.4+,推荐)

Zabbix 5.4 起引入了永久 API Token机制,无需每次通过用户名密码登录换取临时 Token,非常适合 CI/CD 和长期集成场景。

操作步骤(以 Zabbix 6.x / 7.x 为例)
  1. 以管理员身份登录 Zabbix Web 界面
  2. 点击左下角 User settings(用户设置)
  3. 选择 API tokens(API 令牌) 标签页
  4. 点击右上角 Create API token(创建 API 令牌)
  5. 填写令牌名称,选择关联用户,可选设置过期时间
  6. 点击 Add(添加) 完成创建
  7. ⚠️ 重要: 令牌值只显示一次!请立即复制并妥善保存

路径小结(不同版本):

  • Zabbix 6.x:Administration → General → API Tokens(或用户设置页)
  • Zabbix 7.x:User settings → API tokens

创建后的 Token 形如:

复制代码
abc1234def5678...(64位十六进制字符串)

方式二:通过 user.login API 动态获取 Token

这是 Zabbix 5.4 之前的经典方式,适用于脚本临时认证场景。Token 与用户 Session 绑定,Session 失效需重新获取。

使用 curl 获取
复制代码
curl --request POST \
  --url 'http://your-zabbix-server/api_jsonrpc.php' \
  --header 'Content-Type: application/json-rpc' \
  --data '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
      "username": "Admin",
      "password": "zabbix"
    },
    "id": 1
  }'

成功响应:

复制代码
{
  "jsonrpc": "2.0",
  "result": "0424bd59b807674191e7d77572075f33",
  "id": 1
}

result 字段的值即为本次会话的认证 Token。


使用 Shell 脚本自动提取 Token

依赖:需先安装 jqapt install jqyum install jq


使用 Python 获取 Token

方式三:通过 Zabbix API 以编程方式创建永久 Token(Zabbix 5.4+)

如果你需要在脚本中自动化创建永久 Token,可先用用户名密码获取会话 Token,再调用 token.createtoken.generate


Token 获取方式对比

特性 user.login(会话 Token) Web 界面创建(永久 Token) API 编程创建(永久 Token)
适用版本 所有版本 Zabbix 5.4+ Zabbix 5.4+
有效期 与 Session 绑定 可设置固定期限 可设置固定期限
使用场景 脚本、临时调用 长期集成、MCP服务 自动化部署
安全性 中(需存储账号密码) 高(只需保存 Token) 高(自动化流程)
推荐程度 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐

四、安装与配置 zabbix-mcp-server

环境要求

  • Python 3.10+
  • uv 包管理器
  • 可访问的 Zabbix 服务器(已启用 API)

安装步骤

复制代码
# 1. 克隆项目
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server

# 2. 安装依赖
uv sync

# 3. 复制并编辑配置文件
cp config/.env.example .env

配置 .env 文件

复制代码
# Zabbix 服务器地址(必填)
ZABBIX_URL=https://your-zabbix-server.example.com

# 认证方式一:API Token(推荐,Zabbix 5.4+)
ZABBIX_TOKEN=your_api_token_here

# 认证方式二:用户名/密码(二选一)
# ZABBIX_USER=Admin
# ZABBIX_PASSWORD=your_password

# 可选:只读模式,防止误操作
# READ_ONLY=true

# 可选:SSL 证书验证
# VERIFY_SSL=true

测试安装

复制代码
uv run python scripts/test_server.py

启动服务器

复制代码
# 推荐方式
uv run python scripts/start_server.py

# 或直接运行
uv run python src/zabbix_mcp_server.py

五、Docker 快速部署

如果不想配置 Python 环境,可以直接用 Docker:

复制代码
# 配置环境变量
cp config/.env.example .env
# 编辑 .env 填入你的 Zabbix 配置

# 启动服务
docker compose up -d

docker-compose.yml 示例:

复制代码
version: '3'
services:
  zabbix-mcp:
    build: .
    env_file: .env
    restart: unless-stopped

六、集成到 AI 助手(以 Claude Desktop 为例)

安装完成后,将服务注册到 Claude Desktop 的 MCP 配置中:

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):

复制代码
{
  "mcpServers": {
    "zabbix": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/zabbix-mcp-server",
        "run",
        "python",
        "src/zabbix_mcp_server.py"
      ],
      "env": {
        "ZABBIX_URL": "https://your-zabbix-server.example.com",
        "ZABBIX_TOKEN": "your_api_token_here"
      }
    }
  }
}

重启 Claude Desktop 后,你就可以直接用自然语言操作 Zabbix 了!


七、实际使用示例

配置完成后,你可以这样和 AI 对话:

查看当前告警

"帮我列出所有 severity 为 High 的未解决问题"

分析主机性能

"查看服务器 web-server-01 最近 1 小时的 CPU 使用率趋势"

批量操作

"将主机组 'Testing' 中的所有主机禁用监控"

配置管理

"帮我创建一个名为 'nginx-monitor' 的监控项,监控 nginx 进程数"

只读安全模式

.env 中设置 READ_ONLY=true,AI 只能查询不能修改,适合只读看板场景


八、安全注意事项

  1. 优先使用 API Token 而非用户名密码:Token 泄露可立即撤销,密码泄露影响范围更大
  2. 为 MCP 集成创建专用只读账户:最小权限原则
  3. 设置 Token 有效期:避免长期有效的 Token 被滥用
  4. 生产环境启用 VERIFY_SSL=true:防止中间人攻击
  5. 保护 .env 文件:不要将其提交到 Git 仓库(已在 .gitignore 中排除)
  6. 只读模式优先 :如无需写入操作,务必设置 READ_ONLY=true

九、总结

zabbix-mcp-server 是一个将监控运维与 AI 能力融合的创新实践。通过 MCP 协议,繁琐的 Zabbix 操作变成了简单的自然语言对话,极大降低了运维门槛。

关键步骤回顾:

  1. ✅ 获取 Zabbix API Token(推荐 Web 界面直接创建永久 Token)
  2. ✅ 配置 .env 环境变量
  3. ✅ 启动 MCP 服务(uv 或 Docker)
  4. ✅ 集成到 Claude Desktop 等 AI 助手
  5. ✅ 用自然语言驾驭 Zabbix

参考资料


作者:运维 AI 探索者 | 发布于 2026-03-30

相关推荐
IT_陈寒1 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
新新技术迷2 小时前
Node给AI接口做SSE代理与鉴权
人工智能
redreamSo2 小时前
大模型是不是到顶了?瓶颈到底在哪
人工智能·openai
Oo9202 小时前
Tool Use 背后的技术逻辑
人工智能
姗姗来迟了2 小时前
Vue3封装AI流式对话组件踩坑实录
人工智能
码上天下3 小时前
用Pinia管理AI多会话状态
人工智能
用户054324329704 小时前
Next.js接大模型流式SSE实操踩坑
人工智能
Assby4 小时前
从 Function Calling 到 MCP:理解 Agent 工具调用的底层通信机制
人工智能·后端
小星AI4 小时前
Claude Code 从入门到精通,一步到位
人工智能
后端小肥肠4 小时前
Codex + Obsidian 做人生副本视频:输入主题文案,直通剪映草稿
人工智能·aigc·agent