使用说明
Zabbix MCP服务器
用于将Zabbix监控平台与Claude和其他AI助手集成的模型上下文协议(MCP)服务器。
特性
- 🖥️ 主机管理:列出并获取受监视主机的详细信息
- 🔔 触发器监控:查询触发器状态和历史记录
- ⚠️ 问题警报:获取活动问题和警报
- 📊 指标:访问监控项目和历史数据
- 👥 群组:查看主机组和组织
- 📅 事件:查询最近的事件
- 🔐 安全:基于令牌的Zabbix API身份验证
快速开始
先决条件
- Python 3.10+
- Zabbix 6.0+,可访问API
- 有效的Zabbix API证书
安装
git clone https://github.com/oribot89/zabbix-mcp.git
cd zabbix-mcp
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# Install dependencies
pip install -e .
配置
cp .env.example .env
# Edit .env with your Zabbix credentials
测试连接
python test_connection.py
运行服务器
python -m zabbix_mcp.server
可用工具
查询工具(只读)
获取_帖子
列出Zabbix中所有受监视的主机。
get_问题
获取活动问题/警报。
get_triggers
列出触发器的当前状态。
get_events
从Zabbix获取最近的事件。
获取费用详情
获取特定主机的详细信息。
参数:
hostname(必填):要查找的主机名称
获取项目
获取监控项目(指标)。
参数:
hostname(可选):按主机名筛选
get_host_groups
列出所有主机组。
get_system_status
获取整体系统状态和统计数据。
获取模板
列出所有可用的Zabbix模板。
check_host_interface_可用性
检查主机的代理接口是否可用并响应。
参数:
hostid(必填):要检查的主机ID
管理工具(写入操作)
create_host⭐ 推荐
创建一个新的Zabbix主机来监控容器或服务器。
推荐参数:
hostname(必填):内部标识符(例如。,beta-servicedesk)display_name(必填):在前端显示名称(例如。,Beta Service Desk (CTID 105))ip_address(必填):用于轮询的代理IP(例如。,10.0.0.7)port(可选):代理端口(默认值:10050)group_id(可选):主机组ID(默认值:2=Linux服务器)template_id(可选):模板ID(默认值:10001=Zabbix代理的Linux)
为什么使用API而不是手动编辑DB:
- Zabbix内部状态已正确同步
- 自动管理序列表
- 标记为可用的接口=1立即
- 代理轮询在30-60秒内开始
- 保证数据一致性
例子:
Create host: beta-servicedesk
Display: Beta Service Desk (CTID 105)
IP: 10.0.0.7
Port: 10050
add_host_interface
向现有主机添加网络接口以进行代理轮询。
参数:
hostid(必填):主机IDip_address(必填):IP地址port(可选):代理端口(默认值:10050)interface_type(可选):1=代理,2=SNMP,3=IPMI,4=JMX(默认值:1)
链接模板
将模板链接到主机以自动生成监控项。
参数:
hostname(必填):主机名template_name(必填):模板名称
sync_zabbix序列
修复序列表不同步问题(手动数据库操作后调用一次)。
注: 只有当序列不同步时才需要。基于API的操作会自动处理此问题。
Claude桌面集成
添加到您的Claude Desktop配置文件(~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"zabbix": {
"command": "python",
"args": ["-m", "zabbix_mcp.server"],
"env": {
"ZABBIX_HOST": "zabbix.example.com",
"ZABBIX_USERNAME": "Admin",
"ZABBIX_PASSWORD": "your-password"
}
}
}
}
许可证
麻省理工学院
作者
Ori_(oribot@edinprint3d.co.uk)