当前位置: 首页 > news >正文

centos 7.9 离线部署Zabbix 6.0.46 监控详细方案(解决数据库字符集问题)

agent离线包的下载地址:https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/
server用的是docker,不是上述的链接
一、外网环境准备(需联网设备操作)
1. 下载所需 Docker 镜像
# 核心镜像 docker pull mysql:8.0 docker pull zabbix/zabbix-server-mysql:6.0-ubuntu-latest docker pull zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest docker pull zabbix/zabbix-agent:6.0-ubuntu-latest # 可选管理工具 docker pull portainer/portainer-ce:latest docker pull adminer:latest
2. 保存镜像 为离线文件
mkdir zabbix-docker-offline docker save -o D:/mysql.tar mysql:8.0 docker save -o D:/zabbix-server-mysql.tar zabbix/zabbix-server-mysql:ubuntu-6.0-latest docker save -o D:/zabbix-server-web.tar zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest docker save -o D:/zabbix-agent.tar zabbix/zabbix-agent:6.0-latest docker save -o D:/portainer.tar portainer/portainer-ce:latest docker save -o D:/adminer.tar adminer:latest # 打包传输 zabbix-docker-offline目录名称 tar czvf zabbix-docker-offline.tar.gz zabbix-docker-offline/
二、内网服务器部署(192.168.145.136)
1. 传输并加载镜像
# 上传文件到服务器 mkdir -p /opt/zabbix-docker tar xzvf zabbix-docker-offline.tar.gz -C /opt/zabbix-docker # 加载所有镜像 docker load -i /opt/zabbix-docker/mysql.tar docker load -i /opt/zabbix-docker/zabbix-server.tar docker load -i /opt/zabbix-docker/zabbix-web.tar docker load -i /opt/zabbix-docker/zabbix-agent.tar
2. 创建持久化目录
mkdir -p /data/zabbix/{mysql,server,web} chmod -R 777 /data/zabbix
3. 编写 docker-compose.yml(字符集不能是utf8mb4_unicode_ci)
version: '3.8' services: mysql-server: image: mysql:8.0 container_name: zabbix-mysql restart: unless-stopped environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码 MYSQL_ROOT_PASSWORD: Fit2cloud... # 替换为你的真实密码 volumes: - /data/zabbix/mysql:/var/lib/mysql networks: - zabbix-net ports: - "3306:3306" #新增:映射3306增加sql远程连接 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --default-authentication-plugin=mysql_native_password --log_bin_trust_function_creators=1 # 新增:解决函数创建权限问题(关键) healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pFit2cloud..."] # 替换为你的root密码 interval: 10s timeout: 5s retries: 10 start_period: 30s zabbix-server: image: zabbix/zabbix-server-mysql:6.0-ubuntu-latest container_name: zabbix-server restart: unless-stopped environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码 ZBX_ENABLE_SNMP_TRAPS: "true" DB_SERVER_PORT: 3306 volumes: - /data/zabbix/server:/var/lib/zabbix networks: - zabbix-net ports: - "10051:10051" depends_on: mysql-server: condition: service_healthy zabbix-web: image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest container_name: zabbix-web restart: unless-stopped environment: DB_SERVER_HOST: mysql-server MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码 ZBX_SERVER_HOST: zabbix-server PHP_TZ: Asia/Shanghai networks: - zabbix-net ports: - "80:8080" - "443:8443" depends_on: zabbix-server: condition: service_started portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - /data/zabbix/portainer:/data networks: - zabbix-net networks: zabbix-net: driver: bridge
4. 启动服务栈
cd /opt/zabbix-docker docker compose up -d
5. 离线部署报错dbversion.table没找到,需要等一会就行了,如果不行可以从自己的虚拟机里复刻环境,把table导出后手动导入,但这样可能因为数据库字段格式等问题有其他报错(不推荐)
1.进入docker中mysql的命令行 docker exec -it zabbix-mysql mysql -uroot -p 2.导出数据表 mysqldump -u username -p database_name table_name > table_name.sql 3.导入文件,使用命令,将上一步产生的sql文件复制到容器的内部 docker cp /path/to/your/sql/file.sql <container_id_or_name>:/path/in/container 4.进入docker中mysql的命令行 docker exec -it zabbix-mysql mysql -uroot -p 5.导入表 mysql -u username -p new_database_name < table_name.sql
或者直接移植数据
1.把运行的容器关掉 #docker compose down 2.进入compose文件所在的路径,运行如下 #tar -czf zabbix-backup.tar.gz docker-compose.yml /data/zabbix 3.打包之后转移到新机器后,把要复制的data/zabbix解压到 /data/zabbix
6.安装agent时有时连不上,是因为防火墙没开端口(即使开了端口没设置作用域也不行),防火墙关闭即可,
docker agent2的监测模板提取不到数据、监测不到,是因为需要把zabbix用户添加到docker的用户组,没有权限
检查docker组是否存在
1.检查docker组是否存在 #getent group docker 2.将zabbix用户添加到docker 组 #usermod -aG docker zabbix 3.验证用户组更改 #groups zabbix 4.重启zabbix-agent2 #systemctl restart zabbix-agent2

7.当agent连接不上时,排障思路是从server主机测试agent连接,例如

curl 1.1.1.1:10050
http://www.gsyq.cn/news/1424858.html

相关文章:

  • 如何快速制作精简版Windows 11系统镜像:终极指南
  • 告别手动整理!用Python脚本调用Eeyes实现自动化C段资产梳理
  • 多因子股票预测实战代码包:随机森林回测+单因子筛选+分类可视化图表
  • 2026年最值得投入的AI岗位:零基础转行AI训练师,我只看这一套课!
  • stm32-SPI
  • 电路设计实战:从元器件选型到PCB制作与调试全流程解析
  • Arduino实时时钟RTC模块DS3231应用指南:从硬件连接到代码实现
  • 告别CAN总线8字节限制:手把手教你用AUTOSAR CanTp模块搞定ISO 15765长报文传输
  • WindowResizer技术指南:使用Windows API实现窗口强制调整的完整解决方案
  • 儿童电动车辅助开关与PVC支撑框架改装指南:为特殊需求儿童打造专属座驾
  • 明穆宗 朱载坖
  • MindSpore Transformers 断点续训功能原理
  • 旅游管理毕设实战包:SpringBoot后端+Vue前端,含可运行源码、万字论文文档、部署教程与答辩PPT
  • 为什么我的频谱图纵坐标是负的?从dB/Hz单位聊聊信号处理中的对数变换
  • sd卡的照片在电脑上删除之后能还原吗,介绍6种恢复技巧和视频演示,让你的数据轻松找回!
  • MongoDB副本集配置
  • 《冰雪重制版》热血 165/166 区开服公告 福利活动指南
  • 3分钟完全指南:使用qmc-decoder免费解锁QQ音乐加密文件
  • 为什么92%的Claude企业用错画像标签?深度解析行为埋点偏差、冷启动陷阱与动态衰减曲线
  • Vue3旅游网站源码包:含首页/景点/线路/海报/关于我们/登录注册等9大功能页
  • Claude合同条款审查实操手册:5步精准定位AI服务隐性风险,90%企业已踩坑
  • 2026年卫生避光瓶top10推荐:江苏瓶盖/江苏精油盖/江苏胶头滴管盖/江苏螺口瓶/合规性与性能双维度盘点 - 优质品牌商家
  • Airy光束自由传播光强仿真:Matlab一键运行生成2D/3D分布图
  • Claude Code相关最新问题解决API Error: 400 Failed to deserialize the JSON body into the target type:
  • 【AI时代PRD新范式】:为什么你的Claude需求文档总被研发拒收?3个权威验证指标揭晓
  • 2026腾讯广告算法大赛的反思
  • 2026年至今杭州植物饮料提取生产线厂商选择与行业深度观察 - 2026年企业资讯
  • 终极HS2游戏增强补丁完整解决方案:从零到精通的安装配置指南
  • ncmdump终极指南:3分钟快速解密网易云音乐NCM文件
  • 定了!创想三维明日上市,12周年新品齐发