zabbix6.4 容器离线部署
部署环境信息
操作系统:Centos7.9
CPU架构:x86_64
安装用户:root
部署前准备
检查 selinux 是否关闭
如果系统处于 selinux 激活的模式下,会影响一些依赖的正常安装与使用,所以如果已经开启的话,需要先关闭selinux激活模式。
检查 selinux 状态,如果状态显示为 enforcing,即表示目前为激活状态。
getenforce
关闭 selinux 激活状态
sed -i '/^SELINUX.*/s/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
注意:修改完后要重启系统后才能生效。
检查容器工具是否安装
这里的容器工具主要使用docker和docker-compose,具体安装可参考 centos离线安装docker,docker-compose
检查docker命令
docker -v
检查docker-compose命令
docker-compose -v
检查服务运行端口是否被占用
zabbix6.4 完整服务实际包含以下几个组件,因为要把容器端口都映射出来,所以需要检查要映射的端口在宿主机是否被占用。
zabbix6.4 组件服务:
- mysql 默认端口:3306
- zabbix-java-gateway 默认端口:10052
- zabbix-snmptraps 默认端口:1162
- zabbix-server 默认端口:10051
- zabbix-web 默认端口:8080
检查指定端口是否被占用,如果没有进程在使用,则表示端口可用。
netstat -tunlp | grep 指定端口
下载服务组件镜像
- 下载zabbix组件服务镜像
先找一台可以正常联网的电脑,通过以下命令先拉取组服务的官方镜像。
# 下载 mysql
docker pull mysql:8.0.36
# 下载 zabbix-java-gateway
docker pull zabbix/zabbix-java-gateway:6.4-centos-latest
# 下载 zabbix-snmptraps
docker pull zabbix/zabbix-snmptraps:6.4-centos-latest
# 下载 zabbix-server
docker pull zabbix/zabbix-server-mysql:6.4-centos-latest
# 下载 zabbix-web
docker pull zabbix/zabbix-web-service:6.4-centos-latest
- 导出镜像文件
导出镜像文件,并上传到要部署的服务器上。
# 导出 mysql
docker save mysql:8.0.36 -o mysql.tar
# 导出 zabbix-java-gateway
docker save zabbix/zabbix-java-gateway:6.4-centos-latest -o zabbix-java-gateway.tar
# 导出 zabbix-snmptraps
docker save zabbix/zabbix-snmptraps:6.4-centos-latest -o zabbix-snmptraps.tar
# 导出 zabbix-server
docker save zabbix/zabbix-server-mysql:6.4-centos-latest -o zabbix-server-mysql.tar
# 导出 zabbix-web
docker save zabbix/zabbix-web-service:6.4-centos-latest -o zabbix-web-service.tar
下载字体文件
字体文件我直接拷贝的电脑上的,这里直接放blog上方便大家使用,下载解压后直接上传到要部署的服务器上,如果不放心,用户也可以在自己电脑上拷贝也行。
下载地址:https://files.cnblogs.com/files/blogs/676474/simfang.zip?t=1731048959&download=true
部署服务
导入组件镜像
将前面步骤导出的镜像文件依次进行导入。
# 导入镜像文件
docker load < 组件服务镜像
# 检查导入结果
docker images
创建安装目录
# 创建安装目录
mkdir -pv /opt/zabbix-server
# 初始化安装目录
mkdir -pv /opt/zabbix-server/{mysql/{data,conf,logs},font,snmptraps,mibs,alertscripts,externalscripts}
# 安装目录赋权
chmod -R 777 /opt/zabbix-server/*
拷贝字体文件
cp simfang.ttf /opt/zabbix-server/font
创建启动配置
创建启动配置
vi /opt/zabbix-server/docker-compose.yml
docker-compose.yml 内容
---
services:
mysql:
image: mysql:8.0.36
container_name: mysql
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/var/log/mysql
- /etc/localtime:/etc/localtime
restart: always
privileged: true
environment:
- MYSQL_ROOT_PASSWORD=mysql管理员密码
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=mysql自定义账户zabbix密码
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
ports:
- "3306:3306"
networks:
zabbix-net:
command: --character-set-server=utf8 --collation-server=utf8_bin
zabbix-gateway:
image: zabbix/zabbix-java-gateway:6.4-centos-latest
container_name: zabbix-gateway
volumes:
- /etc/localtime:/etc/localtime
restart: always
privileged: true
ports:
- "10052:10052"
networks:
zabbix-net:
zabbix-snmptraps:
image: zabbix/zabbix-snmptraps:6.4-centos-latest
container_name: zabbix-snmptraps
volumes:
- /etc/localtime:/etc/localtime
- ./snmptraps:/var/lib/zabbix/snmptraps
- ./mibs:/var/lib/zabbix/mibs
restart: always
privileged: true
ports:
- "1162:1162/udp"
networks:
zabbix-net:
zabbix-server:
image: zabbix/zabbix-server-mysql:6.4-centos-latest
container_name: zabbix-server
volumes:
- /etc/localtime:/etc/localtime
- ./snmptraps:/var/lib/zabbix/snmptraps
- ./mibs:/var/lib/zabbix/mibs
- ./alertscripts:/usr/lib/zabbix/alertscripts
- ./externalscripts:/usr/lib/zabbix/externalscripts
restart: always
privileged: true
environment:
- ZBX_LISTENPORT=10051
- DB_SERVER_HOST=mysql
- DB_SERVER_PORT=3306
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=mysql自定义账户zabbix密码
- MYSQL_ROOT_PASSWORD=mysql管理员密码
- ZBX_CACHESIZE=1G
- ZBX_HISTORYCACHESIZE=512M
- ZBX_HISTORYINDEXCACHESIZE=16M
- ZBX_TRENDCACHESIZE=256M
- ZBX_VALUECACHESIZE=256M
- ZBX_STARTPINGERS=64
- ZBX_IPMIPOLLERS=1
- ZBX_ENABLE_SNMP_TRAPS=true
- ZBX_STARTTRAPPERS=1
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAY=zabbix-gateway
- ZBX_STARTJAVAPOLLERS=1
ports:
- "10051:10051"
networks:
zabbix-net:
links:
- mysql
- zabbix-gateway
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:6.4-centos-latest
container_name: zabbix-web
volumes:
- ./font/simfang.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
- /etc/localtime:/etc/localtime
restart: always
privileged: true
environment:
- ZBX_SERVER_NAME=Zabbix 6.0
- ZBX_SERVER_HOST=zabbix-server
- ZBX_SERVER_PORT=10051
- DB_SERVER_HOST=mysql
- DB_SERVER_PORT=3306
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=mysql自定义账户zabbix密码
- MYSQL_ROOT_PASSWORD=mysql管理员密码
- PHP_TZ=Asia/Shanghai
ports:
- "8080:8080"
networks:
zabbix-net:
links:
- mysql
- zabbix-server
networks:
zabbix-net:
driver: bridge
ipam:
config:
- subnet: 10.10.10.0/24
gateway: 10.10.10.1
创建zabbix容器服务
# 进入安装目录
cd /opt/zabbix-server
# 启动容器服务
docker-compose up -d
部署检查
- 使用 docker 检查
docker ps

- 使用 docker-compose 检查
# 进入安装目录
cd /opt/zabbix-server
# 容器服务状态检查(该检查方式注意需与 docker-compose.yml 在同一目录)
docker-compose stats


浙公网安备 33010602011771号