Docker离线部署Zabbix监控详细方案
以下是通过Docker 容器化实现 Zabbix 离线部署的详细方案支持完全无外网环境的安装一、外网环境准备需联网设备操作1. 下载所需 Docker 镜像# 核心镜像dockerpull mysql:8.0dockerpull zabbix/zabbix-server-mysql:6.0-ubuntu-latestdockerpull zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latestdockerpull zabbix/zabbix-agent:6.0-ubuntu-latest# 可选管理工具dockerpull portainer/portainer-ce:latestdockerpull adminer:latest2. 保存镜像为离线文件mkdirzabbix-docker-offlinedockersave-oD:/mysql.tar mysql:8.0dockersave-oD:/zabbix-server-mysql.tar zabbix/zabbix-server-mysql:ubuntu-6.0-latestdockersave-oD:/zabbix-server-web.tar zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latestdockersave-oD:/zabbix-agent.tar zabbix/zabbix-agent:6.0-latestdockersave-oD:/portainer.tar portainer/portainer-ce:latestdockersave-oD:/adminer.tar adminer:latest# 打包传输 zabbix-docker-offline目录名称tarczvf zabbix-docker-offline.tar.gz zabbix-docker-offline/二、内网服务器部署192.168.0.11. 传输并加载镜像# 上传文件到服务器mkdir-p/opt/zabbix-dockertarxzvf zabbix-docker-offline.tar.gz-C/opt/zabbix-docker# 加载所有镜像dockerload-i/opt/zabbix-docker/mysql.tardockerload-i/opt/zabbix-docker/zabbix-server.tardockerload-i/opt/zabbix-docker/zabbix-web.tardockerload-i/opt/zabbix-docker/zabbix-agent.tar2. 创建持久化目录mkdir-p/data/zabbix/{mysql,server,web}chmod-R777/data/zabbix3. 编写 docker-compose.ymlversion:3.7services:mysql-server:image:mysql:8.0container_name:zabbix-mysqlrestart:unless-stoppedenvironment:MYSQL_DATABASE:zabbixMYSQL_USER:zabbixMYSQL_PASSWORD:Zbb1x_2023MYSQL_ROOT_PASSWORD:Root2023volumes:-/data/zabbix/mysql:/var/lib/mysqlnetworks:-zabbix-netcommand:--character-set-serverutf8mb4--collation-serverutf8mb4_unicode_cizabbix-server:image:zabbix/zabbix-server-mysql:ubuntu-6.0-latestcontainer_name:zabbix-serverrestart:unless-stoppedenvironment:DB_SERVER_HOST:mysql-serverMYSQL_DATABASE:zabbixMYSQL_USER:zabbixMYSQL_PASSWORD:Zbb1x_2023ZBX_ENABLE_SNMP_TRAPS:truevolumes:-/data/zabbix/server:/var/lib/zabbixnetworks:-zabbix-netports:-10051:10051depends_on:-mysql-serverzabbix-web:image:zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latestcontainer_name:zabbix-webrestart:unless-stoppedenvironment:DB_SERVER_HOST:mysql-serverMYSQL_DATABASE:zabbixMYSQL_USER:zabbixMYSQL_PASSWORD:Zbb1x_2023ZBX_SERVER_HOST:zabbix-servernetworks:-zabbix-netports:-80:8080-443:8443depends_on:-zabbix-serverportainer:image:portainer/portainer-ce:latestcontainer_name:portainerrestart:alwaysports:-9000:9000volumes:-/var/run/docker.sock:/var/run/docker.sock-/data/zabbix/portainer:/datanetworks:-zabbix-netnetworks:zabbix-net:driver:bridge4. 启动服务栈cd/opt/zabbix-dockerdockercompose up-d三、Agent节点部署192.168.0.2 和 192.168.0.31. 加载Agent镜像dockerload-i/opt/zabbix-docker/zabbix-agent.tar2. 启动Agent容器dockerrun-d\--namezabbix-agent\--privileged\-eZBX_SERVER_HOST192.168.0.1\-eZBX_HOSTNAMEnode-01\-p10050:10050\-v/:/rootfs\-v/var/run:/var/run\zabbix/zabbix-agent:6.0-latest四、初始化配置1. 访问 Web 界面浏览器访问http://192.168.0.1默认凭证Admin/zabbix2. 添加监控主机登录后进入Configuration → Hosts → Create host配置项Host name:node-01Groups:Linux serversAgent interfaces:192.168.0.2:10050关联模板Linux by Zabbix agent五、离线部署增强配置1. 时间同步# 所有容器添加时间同步dockerrun...\-v/etc/localtime:/etc/localtime:ro\--add-hostntp.server:192.168.0.12. 数据备份# 创建备份脚本 /opt/zabbix-docker/backup.shdockerexeczabbix-mysql mysqldump-uzabbix-pZbb1x_2023 zabbix|gzip/data/backup/zabbix-$(date%Y%m%d).sql.gz3. 安全加固# 在docker-compose.yml中添加environment:-ZBX_TLSCONNECTpsk-ZBX_TLSACCEPTpsk-ZBX_TLSPSKIDENTITYPSK001-ZBX_TLSPSKFILE/etc/zabbix/psk.keyvolumes:-./psk.key:/etc/zabbix/psk.key六、验证与排错1. 检查容器状态dockerps-a--formattable {{.Names}}\t{{.Status}}\t{{.Ports}}2. 查看日志dockerlogs-fzabbix-serverdockerexeczabbix-mysql mysql-uzabbix-pZbb1x_2023-eSHOW DATABASES;3. 测试数据采集dockerexeczabbix-server zabbix_get-s192.168.0.2-ksystem.cpu.load[all,avg1]七、扩展方案1. 高可用部署# 添加以下服务到docker-compose.ymlzabbix-proxy:image:zabbix/zabbix-proxy-mysql:6.0-latestenvironment:ZBX_SERVER_HOST:zabbix-serverZBX_HOSTNAME:proxy-012. 监控Docker容器# 在Agent容器中添加-eZBX_DOCKER1-v/var/lib/docker/containers:/var/lib/docker/containers:ro3. 自定义监控模板创建/opt/zabbix-docker/custom_checks目录在docker-compose.yml中添加volumes:-./custom_checks:/etc/zabbix/zabbix_agentd.d/custom八、关键注意事项版本一致性确保所有组件版本均为6.0系列存储规划MySQL数据目录至少预留20GB空间防火墙规则firewall-cmd--permanent--add-port{80,10051,10050}/tcp firewall-cmd--reload备份策略每日备份MySQL数据库和配置文件此方案通过容器化实现了快速部署和易维护性同时保留完整的扩展能力。通过 Portainer 可以方便地进行可视化容器管理适合长期运维场景。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425557.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!