运维养龙虾--用 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

相关推荐
四千岁2 小时前
保姆级教程:WSL 安装 Ollama,本地免费跑开源大模型
人工智能
小马过河R2 小时前
AI时代下的CLI优势与MCP对比
人工智能·ai·语言模型·agent·cli·智能体·mcp
Web3VentureView2 小时前
SYNBO 已上线 BitMart 交易所,Synbo Camp 同步开启
人工智能·区块链·媒体·加密货币·synbo
kay_5452 小时前
YOLO26 | 注意力机制 | 以分解式双层注意力提升语义表达与细节捕捉【完整步骤】
人工智能·目标检测·计算机视觉·目标跟踪·视觉检测·yolo26·yolo26改进
itpan80672 小时前
Claude Code 源码分析技术文档
人工智能
用户5191495848452 小时前
Cacti 1.2.26 远程代码执行漏洞利用工具 (CVE-2024-25641)
人工智能·aigc
阿狸OKay2 小时前
RKNN_AI工具在RK板卡上的部署
人工智能
禁默2 小时前
搭建专属知识库:用 ModelEngine通过知识库处理搭建“AI 职业规划师”
人工智能
今天你AiPy了吗2 小时前
OpenClaw平替来了!AiPy让AI办公更简单
人工智能·gpt·aigc·ai编程