# deploy-zabbix **Repository Path**: attacker/deploy-zabbix ## Basic Information - **Project Name**: deploy-zabbix - **Description**: No description available - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-04-23 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Zabbix 一键部署与自动化运维文档 ## 项目简介 本项目用于 Zabbix 服务端与客户端一键部署。服务端通过根目录 `install.sh` 部署 Zabbix Server 6.0 LTS / 7.0 LTS;客户端通过独立脚本安装 Zabbix Agent 6.0 LTS / 7.0 LTS,并自动写入 Server、Hostname 与监控项配置。 --- ## 目录结构 ``` deploy-zabbix/ ├── install.sh # Zabbix Server 6.0/7.0 LTS 安装与切换入口 ├── zabbix-server/ # 服务端 compose 模板与告警脚本 │ ├── docker-compose/ │ └── alertscripts/ ├── agent/ # 客户端自动化脚本与配置 │ ├── zabbix-agent-6.sh │ ├── zabbix-agent-7.sh │ ├── zabbix_agentd.d/ # 监控项配置 │ └── ... ├── ansible/ # Ansible批量运维(可选) ├── template/ # Zabbix 模板 ├── docs/ # 文档图片 └── README.md # 项目说明文档 ``` --- ## 快速开始 ### 1. 克隆仓库 ```bash git clone https://gitee.com/attacker/deploy-zabbix.git cd deploy-zabbix ``` ### 2. 部署 Zabbix 服务器 #### 依赖环境 - 已安装 Docker - 已安装 Docker Compose 如未安装Docker Compose,可执行: ```bash curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/sbin/docker-compose chmod +x /usr/local/sbin/docker-compose docker-compose version ``` #### install.sh 用法 `install.sh` 支持 Zabbix Server **6.0 LTS** / **7.0 LTS** 切换式部署,同一时刻只运行一个版本。两个版本共用服务端口,但容器名、网络和 PostgreSQL 数据目录隔离。 ```bash ./install.sh 6 # 安装/切换到 Zabbix 6.0 LTS (自动停掉 7.0) ./install.sh 7 # 安装/切换到 Zabbix 7.0 LTS (自动停掉 6.0) ./install.sh uninstall # 卸载当前运行版本 (保留数据, 切回来还在) ./install.sh purge 6|7 # 彻底清除某版本 (含数据, 不可恢复, 需确认) ./install.sh restart 6|7 # 重启某版本 ./install.sh logs [6|7] # 查看日志 ./install.sh status # 查看运行状态 ./install.sh gen 6|7 # 仅生成 compose 文件, 不启动 ./install.sh help # 帮助 ``` 访问 `http://服务器IP` 进入 Zabbix Web 界面。 - 默认用户名: Admin - 默认密码: zabbix - Zabbix Server 端口: `10051` - 内置 `Zabbix server` 主机的 Agent 使用容器内 `127.0.0.1:10050` 采集,部署完成后应可直接采集服务端指标 - 数据目录: `6.0` 使用 `/data/docker/zabbix6/pgdata`,`7.0` 使用 `/data/docker/zabbix7/pgdata` - 共用目录: `/data/docker/zabbix/{alertscripts,externalscripts,zabbix_agentd.d}` ### 3. 部署客户端 Agent > **支持系统**: RHEL / CentOS / Rocky / AlmaLinux / Anolis / Oracle Linux / Amazon Linux / 阿里云 Linux 2、3、4 / Debian / Ubuntu 全系列 > **支持版本**: Zabbix Agent **6.0 LTS** 与 **7.0 LTS** 分脚本安装 客户端按版本选择固定脚本安装,不需要再传版本参数: - `agent/zabbix-agent-6.sh` 固定安装 6.0 LTS - `agent/zabbix-agent-7.sh` 固定安装 7.0 LTS #### 一键安装命令 ```bash # 安装 Zabbix Agent 6.0 LTS 客户端 curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-6.sh | bash -s zbx服务端IP 本机主机名 # 安装 Zabbix Agent 7.0 LTS 客户端 curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-7.sh | bash -s zbx服务端IP 本机主机名 ``` 可选参数: ```bash curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-6.sh \ | bash -s <本机主机名> [active|agent] [repo|binary] curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-7.sh \ | bash -s <本机主机名> [active|agent] [repo|binary] ``` 示例: ```bash # 安装 6.0 LTS: 被动模式 + 官方仓库, 仓库不适用时自动回退二进制 curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-6.sh | bash -s 10.0.0.102 pro-xxx-1 # 安装 7.0 LTS curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-7.sh | bash -s 10.0.0.102 pro-xxx-1 # 主动模式 + 静态二进制包 (无外网仓库的机器, 任意发行版通用) curl -sL https://gitee.com/attacker/deploy-zabbix/raw/master/agent/zabbix-agent-7.sh | bash -s 10.0.0.102 pro-xxx-1 active binary ``` 参数说明: - 第1个参数:Zabbix Server 地址(必填) - 第2个参数:主机名(唯一标识,建议用主机用途+编号,必填) - `zabbix-agent-6.sh` 固定安装 `6.0 LTS` - `zabbix-agent-7.sh` 固定安装 `7.0 LTS` - 可选参数:`active`=主动模式 / `agent`=被动模式(默认 `agent`) - 可选参数:`repo`=官方仓库 / `binary`=静态二进制包(默认 `repo`) - 可选参数支持按内容识别,可直接传 `binary`、`active binary` #### 自动化内容 - 自动下载安装zabbix-agent并配置服务端地址 - 自动下发监控项配置(端口、进程、日志等) - 自动处理netstat等命令权限,避免端口发现权限报错 - 主机需在 Zabbix Web 中添加,或配合自动发现 / 自动注册规则使用 --- ## 高级运维与自定义 ### 监控项自定义 - 配置文件目录:`/etc/zabbix/zabbix_agentd.d/` - 端口监控:编辑`ports.conf`、`ports.discovery.py` - TCP 状态监控:编辑`tcp.conf`、`tcp_status.sh` ### 服务端参数调整 - 根目录 `install.sh` 中可调整 Web、Server、PostgreSQL、Java Gateway 端口和数据目录变量 - 生成后的 compose 文件位于 `zabbix-server/docker-compose/generated/` - 原始 compose 示例位于 `zabbix-server/docker-compose/` --- ## 通知 Zabbix告警媒介配置: Telegram类型: 名称: Telegram Alert 类型: Script 脚本名称: zabbix-tg-alart.py 参数: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 飞书类型: 名称: Lark Alert 类型: Script 脚本名称: zabbix-lark-alart.py 参数: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} ## 告警模版 ** Zabbix告警模板配置 ** 1. 告警通知模板(PROBLEM状态) ```plaintext **[{TRIGGER.STATUS}] {TRIGGER.NAME}** 🔥 **实例**: {HOST.NAME} ({HOST.IP}) 🏷️ **所属群组**: {HOST.HOSTGROUP} 🚨 **告警等级**: {TRIGGER.SEVERITY} 📊 **监控项**: {ITEM.NAME} (当前值: {ITEM.VALUE}) ⏰ **触发时间**: {EVENT.DATE} {EVENT.TIME} ``` 2. 恢复通知模板(OK状态) ```plaintext **[{TRIGGER.STATUS}] {TRIGGER.NAME}** ✅ **实例**: {HOST.NAME} ({HOST.IP}) 🏷️ **所属群组**: {HOST.HOSTGROUP} 📊 **监控项**: {ITEM.NAME} (恢复值: {ITEM.VALUE}) 🕒 **持续时间**: {EVENT.AGE} ⏰ **恢复时间**: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} ```