一、部署zabbix环境¶
准备两台机器分别部署zabbix-server和zabbix-agent,其中机器和版本信息:Zabbix 6.0、Rocky9、数据库使用MariaDB、Web环境使用PHP+Apache
1、准备工作(两台都执行)
关闭Selinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
关闭Firewalld
systemctl disable --now firewalld
2、安装zabbix官方仓库(两台都执行)
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-5.el9.noarch.rpm
dnf clean all
3、安装Zabbix server、Web、Agent
Server端执行:
dnf install -y \
zabbix-server-mysql \
zabbix-web-mysql \
zabbix-apache-conf \
zabbix-agent \
mariadb-server \
zabbix-sql-scripts
Agent端执行:
dnf install -y zabbix-agent
4、配置MariaDB(Server端执行)
启动数据库
systemctl enable --now mariadb
初始化数据库
mysql_secure_installation
创建zabbix数据库和用户
先登录到mysql终端里
mysql -uroot -p ##输入在上面步骤里设置的密码
创建库和用户
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
说明:数据库名:zabbix, 用户名zabbix,密码: Zabbix@123
5、导入初始数据(server端执行)

6、配置zabbix server(Server端执行)
vi /etc/zabbix/zabbix_server.conf
修改或确认以下内容:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@123
7、配置php.ini(Server端执行)
vi php.ini
调整以下参数
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
重启Apache服务
systemctl restart httpd
8、启动并设置自启(server端)
systemctl enable --now \
zabbix-server \
zabbix-agent \
httpd
检查服务状态
systemctl status zabbix-server
systemctl status zabbix-agent
9、Web页面初始化
浏览器访问
http://ip/zabbix
默认用户名和密码:Admin zabbix
10、配置Zabbix agent (两台机器都做)
vi /etc/zabbix/zabbix_agentd.conf
关键参数
Server=<your-managed-server-ip>
ServerActive=<your-managed-server-ip>
Hostname=Zabbix-Server # server端
Hostname=aming01 # Agent端
重启服务
systemctl restart zabbix-agent
11、创建API key
左下方,点击User settings,再点击API tokens
右上角点击Create API Token
设置Name和过期时间
9.2 部署zabbix mcp server¶
可以部署到zabbix server那台机器上
项目地址:https://github.com/mpeirone/zabbix-mcp-server
1、安装docker环境
如果系统里没有docker环境,还需要安装一下docker,系统版本Rocky9
安装dnf插件工具
dnf install -y dnf-plugins-core
配置阿里云的docker源
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce
dnf install -y docker-ce
配置docker镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud"
]
}
EOF
启动docker服务
systemctl start docker
systemctl enable docker
2、克隆源码
git clone https://github.com/aminglinux/zabbix-mcp-server.git
3、更改配置
cd zabbix-mcp-server
cp config/.env.example .env
vi .env ##内容如下ZABBIX_URL=http://<your-managed-server-ip>/zabbix
ZABBIX_TOKEN=68316fb2352a37225b01ff6cc0cf0b698b08be238bbd1e08ae6202314f14a428
READ_ONLY=no
ZABBIX_MCP_TRANSPORT=streamable-http
ZABBIX_MCP_HOST=<your-managed-server-ip>
ZABBIX_MCP_PORT=8000
ZABBIX_MCP_STATELESS_HTTP=false
VERIFY_SSL=true
4、启动容器
docker compose up -d
9.3 Dify里配置MCP¶
菜单栏点击“工具”,再点击“MCP”,然后添加MCP服务

1、服务端点: http://你部署mcp的机器ip:8000/sse
2、名称、服务器标识:zabbix-mcp
3、认证:无认证


9.4 在Dify中创建Agent应用¶


提示词:
你是一个专业的 Zabbix 智能运维助手。你可以通过 MCP 工具访问 Zabbix 监控系统的数据。
## 你的能力
1. 查询主机状态、列表和配置 (host_get)。2. 查询当前的告警和问题 (problem_get)。
3. 获取监控项的历史数据和趋势 (history_get, trend_get)。
## 回答规范
- 当用户询问“某台服务器”的情况时,先尝试模糊搜索主机名获取 hostid。
- 如果查询到告警信息,请按严重程度排序,并给出具体的告警时间、名称和主机。
- 在展示数据时,尽量使用清晰的列表或 Markdown 表格。
- 如果未查到数据,请提示用户检查主机名是否正确。
## 限制规则
- 每个session中,第一次使用host_get查询主机id后,应该记住这些主机id,留给后续的任务重复使用
- 分析任务需求,并找到最适合的工具
- 每次任务最多只能调用5次工具
- 如果调用5次工具依然没有获得结果,直接返回错误信息并给出优化建议
## 示例场景
用户: "帮我看看 server-01 有没有报警"
思考: 先调用 host_get 找到 server-01 的 hostid,然后用 hostid 调用 problem_get。
添加工具

示例1:
查看当前所有主机列表
示例2:
增加主机:Agent 192.168.186.152:10050, 主机名aming01, 主机组Linux server, 模板:Linux by Zabbix agent
示例3:
增加告警规则:当内存使用率高于90%告警
示例4:
给aming01增加一个30分钟的维护期,维护期间不需要告警
示例5:
分析aming01过去1小时的内存使用趋势
示例6:
列出 Linux Servers 主机组里所有机器的 IP 地址,并告诉我哪些机器目前的 Zabbix Agent 连接不可用?