保姆级教程:用Docker Compose 5分钟搞定Zabbix 7.0全家桶部署(含中文配置)

张开发
2026/4/21 6:52:13 15 分钟阅读

分享文章

保姆级教程:用Docker Compose 5分钟搞定Zabbix 7.0全家桶部署(含中文配置)
5分钟容器化部署Zabbix 7.0全栈监控系统含中文优化方案在当今云原生和微服务架构盛行的时代监控系统已成为运维体系的神经中枢。Zabbix作为企业级开源监控解决方案的标杆其7.0版本带来了更强大的容器化支持。本文将带您通过Docker Compose快速搭建完整的Zabbix监控环境并解决中文界面显示等本地化问题。1. 环境准备与架构解析1.1 核心组件拓扑Zabbix 7.0容器化部署主要包含以下服务组件服务名称镜像版本端口映射数据持久化路径MySQL 8.0数据库mysql:8.0-debian3306内部./zbx_db:/var/lib/mysqlZabbix Serverzabbix/zabbix-server-mysql:7.0.910051:10051-Zabbix Web界面zabbix/zabbix-web-nginx-mysql:7.0.980:8080-Zabbix Java网关zabbix/zabbix-java-gateway:7.0.910052内部-1.2 前置条件检查确保宿主机已安装Docker Engine ≥ 20.10.7Docker Compose ≥ 2.17.0至少4GB可用内存10GB磁盘空间# 验证Docker环境 docker --version docker-compose --version2. 一键式部署实战2.1 编写docker-compose.yml创建部署目录并编写编排文件version: 3.8 services: db: image: mysql:8.0-debian container_name: zbx_db networks: - zabbix_net restart: always volumes: - ./zbx_db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: zabbix123 MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix123 command: - --character-set-serverutf8mb4 - --collation-serverutf8mb4_bin zbx_server: image: zabbix/zabbix-server-mysql:7.0.9-ubuntu container_name: zabbix-server networks: - zabbix_net ports: - 10051:10051 depends_on: - db environment: DB_SERVER_HOST: db MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix123 ZBX_JAVAGATEWAY_ENABLE: true zbx_web: image: zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntu container_name: zabbix-web networks: - zabbix_net ports: - 80:8080 depends_on: - db - zbx_server environment: ZBX_SERVER_HOST: zbx_server DB_SERVER_HOST: db MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix123 PHP_TZ: Asia/Shanghai networks: zabbix_net: driver: bridge2.2 启动服务集群执行部署命令并验证服务状态# 启动所有服务 docker-compose up -d # 查看容器运行状态 docker-compose ps -a # 监控初始化日志等待约2分钟 docker logs -f zabbix-server | grep -i server started3. 系统初始化配置3.1 访问Web界面通过浏览器访问http://宿主机IP首次登录使用默认凭证用户名Admin密码zabbix3.2 中文界面优化方案解决监控图表中文乱码问题# 进入Web容器 docker exec -it zabbix-web bash # 替换默认字体需提前下载中文字体 wget -O /usr/share/zabbix/assets/fonts/simkai.ttf \ https://raw.githubusercontent.com/StellarisW/zabbix-font/master/simkai.ttf # 修改字体配置 sed -i s/graphfont/simkai/g /usr/share/zabbix/include/defines.inc.php刷新浏览器后在【Administration】→【General】→【GUI】中选择中文语言包。4. 监控体系扩展实践4.1 Agent2客户端部署在被监控主机上运行docker run -d \ --name zabbix-agent2 \ --networkhost \ -e ZBX_HOSTNAMEHost-$(hostname) \ -e ZBX_SERVER_HOSTZabbix_Server_IP \ zabbix/zabbix-agent2:7.0.9-ubuntu4.2 自定义监控项配置通过模板方式添加进程监控创建模板【Configuration】→【Templates】→【Create template】添加监控项Name: Zombie Process Count Key: proc.num[,,zomb] Type: Zabbix agent Update interval: 1m设置触发器Expression: {Template:proc.num[,,zomb].last()}0 Severity: High5. 告警通道集成5.1 邮件告警配置修改报警媒介类型【Administration】→【Media types】→【Email】SMTP server: smtp.qiye.163.com SMTP helo: zabbix.domain.com SMTP email: monitordomain.com Authentication: Username/Password用户配置接收邮箱【User settings】→【Media】5.2 企业微信机器人集成创建告警脚本/usr/lib/zabbix/alertscripts/wecom.sh#!/bin/bash WEBHOOK_URLhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyYOUR_KEY JSON_HEADER{msgtype:markdown,markdown:{content: JSON_FOOTER}} MESSAGE${JSON_HEADER}**Zabbix告警**\n 主机: ${1}\n 事件: ${2}\n 状态: ${3}\n 详情: ${4}${JSON_FOOTER} curl -s -X POST -H Content-Type: application/json -d ${MESSAGE} ${WEBHOOK_URL}在容器化环境中建议将告警脚本通过volume挂载到容器内部确保脚本变更不会因容器重建而丢失。通过这种全容器化的部署方式Zabbix 7.0的安装维护成本大幅降低特别适合快速搭建测试环境或中小规模生产监控体系。当需要横向扩展时只需调整docker-compose.yml中的资源限制参数即可实现弹性扩容。

更多文章